From 83354b2b88218090988dd6e526b0a2505b57e0f1 Mon Sep 17 00:00:00 2001 From: RaindropsSys Date: Thu, 6 Apr 2023 22:18:28 +0200 Subject: Updated 5 files and added 1110 files (automated) --- includes/external/addressbook/email.js | 175 + .../addressbook/node_modules/.package-lock.json | 454 ++ .../node_modules/@sindresorhus/is/dist/index.d.ts | 235 + .../node_modules/@sindresorhus/is/dist/index.js | 434 ++ .../node_modules/@sindresorhus/is/dist/types.d.ts | 29 + .../node_modules/@sindresorhus/is/dist/types.js | 2 + .../node_modules/@sindresorhus/is/license | 9 + .../node_modules/@sindresorhus/is/package.json | 82 + .../node_modules/@sindresorhus/is/readme.md | 670 +++ .../node_modules/@szmarczak/http-timer/LICENSE | 21 + .../node_modules/@szmarczak/http-timer/README.md | 93 + .../@szmarczak/http-timer/dist/source/index.d.ts | 32 + .../@szmarczak/http-timer/dist/source/index.js | 106 + .../@szmarczak/http-timer/package.json | 89 + .../@types/http-cache-semantics/LICENSE | 21 + .../@types/http-cache-semantics/README.md | 16 + .../@types/http-cache-semantics/index.d.ts | 170 + .../@types/http-cache-semantics/package.json | 25 + .../addressbook/node_modules/boolbase/README.md | 10 + .../addressbook/node_modules/boolbase/index.js | 8 + .../addressbook/node_modules/boolbase/package.json | 23 + .../node_modules/cacheable-lookup/LICENSE | 21 + .../node_modules/cacheable-lookup/README.md | 245 + .../node_modules/cacheable-lookup/index.d.ts | 144 + .../node_modules/cacheable-lookup/package.json | 61 + .../node_modules/cacheable-lookup/source/index.js | 452 ++ .../node_modules/cacheable-request/LICENSE | 22 + .../node_modules/cacheable-request/README.md | 334 ++ .../node_modules/cacheable-request/dist/index.d.ts | 17 + .../cacheable-request/dist/index.d.ts.map | 1 + .../node_modules/cacheable-request/dist/index.js | 275 + .../cacheable-request/dist/index.js.map | 1 + .../node_modules/cacheable-request/dist/types.d.ts | 106 + .../cacheable-request/dist/types.d.ts.map | 1 + .../node_modules/cacheable-request/dist/types.js | 19 + .../cacheable-request/dist/types.js.map | 1 + .../node_modules/cacheable-request/package.json | 118 + .../addressbook/node_modules/chardet/LICENSE | 19 + .../addressbook/node_modules/chardet/README.md | 107 + .../node_modules/chardet/lib/encoding/index.d.ts | 14 + .../node_modules/chardet/lib/encoding/index.js | 3 + .../node_modules/chardet/lib/encoding/index.js.map | 1 + .../node_modules/chardet/lib/encoding/iso2022.d.ts | 23 + .../node_modules/chardet/lib/encoding/iso2022.js | 114 + .../chardet/lib/encoding/iso2022.js.map | 1 + .../node_modules/chardet/lib/encoding/mbcs.d.ts | 50 + .../node_modules/chardet/lib/encoding/mbcs.js | 347 ++ .../node_modules/chardet/lib/encoding/mbcs.js.map | 1 + .../node_modules/chardet/lib/encoding/sbcs.d.ts | 75 + .../node_modules/chardet/lib/encoding/sbcs.js | 764 +++ .../node_modules/chardet/lib/encoding/sbcs.js.map | 1 + .../node_modules/chardet/lib/encoding/unicode.d.ts | 27 + .../node_modules/chardet/lib/encoding/unicode.js | 109 + .../chardet/lib/encoding/unicode.js.map | 1 + .../node_modules/chardet/lib/encoding/utf8.d.ts | 6 + .../node_modules/chardet/lib/encoding/utf8.js | 72 + .../node_modules/chardet/lib/encoding/utf8.js.map | 1 + .../node_modules/chardet/lib/fs/browser.d.ts | 2 + .../node_modules/chardet/lib/fs/browser.js | 6 + .../node_modules/chardet/lib/fs/browser.js.map | 1 + .../node_modules/chardet/lib/fs/node.d.ts | 2 + .../node_modules/chardet/lib/fs/node.js | 11 + .../node_modules/chardet/lib/fs/node.js.map | 1 + .../node_modules/chardet/lib/index.d.ts | 19 + .../addressbook/node_modules/chardet/lib/index.js | 143 + .../node_modules/chardet/lib/index.js.map | 1 + .../node_modules/chardet/lib/match.d.ts | 8 + .../addressbook/node_modules/chardet/lib/match.js | 8 + .../node_modules/chardet/lib/match.js.map | 1 + .../addressbook/node_modules/chardet/package.json | 95 + .../node_modules/cheerio-select/LICENSE | 11 + .../node_modules/cheerio-select/README.md | 18 + .../cheerio-select/lib/esm/helpers.d.ts | 5 + .../cheerio-select/lib/esm/helpers.d.ts.map | 1 + .../node_modules/cheerio-select/lib/esm/helpers.js | 20 + .../cheerio-select/lib/esm/helpers.js.map | 1 + .../node_modules/cheerio-select/lib/esm/index.d.ts | 12 + .../cheerio-select/lib/esm/index.d.ts.map | 1 + .../node_modules/cheerio-select/lib/esm/index.js | 241 + .../cheerio-select/lib/esm/index.js.map | 1 + .../cheerio-select/lib/esm/package.json | 1 + .../cheerio-select/lib/esm/positionals.d.ts | 10 + .../cheerio-select/lib/esm/positionals.d.ts.map | 1 + .../cheerio-select/lib/esm/positionals.js | 47 + .../cheerio-select/lib/esm/positionals.js.map | 1 + .../node_modules/cheerio-select/lib/helpers.d.ts | 5 + .../cheerio-select/lib/helpers.d.ts.map | 1 + .../node_modules/cheerio-select/lib/helpers.js | 26 + .../node_modules/cheerio-select/lib/helpers.js.map | 1 + .../node_modules/cheerio-select/lib/index.d.ts | 12 + .../node_modules/cheerio-select/lib/index.d.ts.map | 1 + .../node_modules/cheerio-select/lib/index.js | 302 ++ .../node_modules/cheerio-select/lib/index.js.map | 1 + .../cheerio-select/lib/positionals.d.ts | 10 + .../cheerio-select/lib/positionals.d.ts.map | 1 + .../node_modules/cheerio-select/lib/positionals.js | 52 + .../cheerio-select/lib/positionals.js.map | 1 + .../node_modules/cheerio-select/package.json | 76 + .../addressbook/node_modules/cheerio/LICENSE | 21 + .../addressbook/node_modules/cheerio/Readme.md | 357 ++ .../node_modules/cheerio/lib/api/attributes.d.ts | 332 ++ .../cheerio/lib/api/attributes.d.ts.map | 1 + .../node_modules/cheerio/lib/api/attributes.js | 622 +++ .../node_modules/cheerio/lib/api/attributes.js.map | 1 + .../node_modules/cheerio/lib/api/css.d.ts | 40 + .../node_modules/cheerio/lib/api/css.d.ts.map | 1 + .../node_modules/cheerio/lib/api/css.js | 118 + .../node_modules/cheerio/lib/api/css.js.map | 1 + .../node_modules/cheerio/lib/api/forms.d.ts | 38 + .../node_modules/cheerio/lib/api/forms.d.ts.map | 1 + .../node_modules/cheerio/lib/api/forms.js | 92 + .../node_modules/cheerio/lib/api/forms.js.map | 1 + .../node_modules/cheerio/lib/api/manipulation.d.ts | 522 ++ .../cheerio/lib/api/manipulation.d.ts.map | 1 + .../node_modules/cheerio/lib/api/manipulation.js | 861 +++ .../cheerio/lib/api/manipulation.js.map | 1 + .../node_modules/cheerio/lib/api/traversing.d.ts | 644 +++ .../cheerio/lib/api/traversing.d.ts.map | 1 + .../node_modules/cheerio/lib/api/traversing.js | 907 ++++ .../node_modules/cheerio/lib/api/traversing.js.map | 1 + .../node_modules/cheerio/lib/cheerio.d.ts | 69 + .../node_modules/cheerio/lib/cheerio.d.ts.map | 1 + .../node_modules/cheerio/lib/cheerio.js | 66 + .../node_modules/cheerio/lib/cheerio.js.map | 1 + .../cheerio/lib/esm/api/attributes.d.ts | 332 ++ .../cheerio/lib/esm/api/attributes.d.ts.map | 1 + .../node_modules/cheerio/lib/esm/api/attributes.js | 601 +++ .../cheerio/lib/esm/api/attributes.js.map | 1 + .../node_modules/cheerio/lib/esm/api/css.d.ts | 40 + .../node_modules/cheerio/lib/esm/api/css.d.ts.map | 1 + .../node_modules/cheerio/lib/esm/api/css.js | 113 + .../node_modules/cheerio/lib/esm/api/css.js.map | 1 + .../node_modules/cheerio/lib/esm/api/forms.d.ts | 38 + .../cheerio/lib/esm/api/forms.d.ts.map | 1 + .../node_modules/cheerio/lib/esm/api/forms.js | 83 + .../node_modules/cheerio/lib/esm/api/forms.js.map | 1 + .../cheerio/lib/esm/api/manipulation.d.ts | 522 ++ .../cheerio/lib/esm/api/manipulation.d.ts.map | 1 + .../cheerio/lib/esm/api/manipulation.js | 810 +++ .../cheerio/lib/esm/api/manipulation.js.map | 1 + .../cheerio/lib/esm/api/traversing.d.ts | 644 +++ .../cheerio/lib/esm/api/traversing.d.ts.map | 1 + .../node_modules/cheerio/lib/esm/api/traversing.js | 831 +++ .../cheerio/lib/esm/api/traversing.js.map | 1 + .../node_modules/cheerio/lib/esm/cheerio.d.ts | 69 + .../node_modules/cheerio/lib/esm/cheerio.d.ts.map | 1 + .../node_modules/cheerio/lib/esm/cheerio.js | 38 + .../node_modules/cheerio/lib/esm/cheerio.js.map | 1 + .../node_modules/cheerio/lib/esm/index.d.ts | 107 + .../node_modules/cheerio/lib/esm/index.d.ts.map | 1 + .../node_modules/cheerio/lib/esm/index.js | 102 + .../node_modules/cheerio/lib/esm/index.js.map | 1 + .../node_modules/cheerio/lib/esm/load.d.ts | 60 + .../node_modules/cheerio/lib/esm/load.d.ts.map | 1 + .../node_modules/cheerio/lib/esm/load.js | 122 + .../node_modules/cheerio/lib/esm/load.js.map | 1 + .../node_modules/cheerio/lib/esm/options.d.ts | 90 + .../node_modules/cheerio/lib/esm/options.d.ts.map | 1 + .../node_modules/cheerio/lib/esm/options.js | 26 + .../node_modules/cheerio/lib/esm/options.js.map | 1 + .../node_modules/cheerio/lib/esm/package.json | 1 + .../node_modules/cheerio/lib/esm/parse.d.ts | 19 + .../node_modules/cheerio/lib/esm/parse.d.ts.map | 1 + .../node_modules/cheerio/lib/esm/parse.js | 73 + .../node_modules/cheerio/lib/esm/parse.js.map | 1 + .../cheerio/lib/esm/parsers/parse5-adapter.d.ts | 20 + .../lib/esm/parsers/parse5-adapter.d.ts.map | 1 + .../cheerio/lib/esm/parsers/parse5-adapter.js | 52 + .../cheerio/lib/esm/parsers/parse5-adapter.js.map | 1 + .../node_modules/cheerio/lib/esm/slim.d.ts | 20 + .../node_modules/cheerio/lib/esm/slim.d.ts.map | 1 + .../node_modules/cheerio/lib/esm/slim.js | 22 + .../node_modules/cheerio/lib/esm/slim.js.map | 1 + .../node_modules/cheerio/lib/esm/static.d.ts | 93 + .../node_modules/cheerio/lib/esm/static.d.ts.map | 1 + .../node_modules/cheerio/lib/esm/static.js | 185 + .../node_modules/cheerio/lib/esm/static.js.map | 1 + .../node_modules/cheerio/lib/esm/types.d.ts | 20 + .../node_modules/cheerio/lib/esm/types.d.ts.map | 1 + .../node_modules/cheerio/lib/esm/types.js | 2 + .../node_modules/cheerio/lib/esm/types.js.map | 1 + .../node_modules/cheerio/lib/esm/utils.d.ts | 75 + .../node_modules/cheerio/lib/esm/utils.d.ts.map | 1 + .../node_modules/cheerio/lib/esm/utils.js | 112 + .../node_modules/cheerio/lib/esm/utils.js.map | 1 + .../node_modules/cheerio/lib/index.d.ts | 107 + .../node_modules/cheerio/lib/index.d.ts.map | 1 + .../addressbook/node_modules/cheerio/lib/index.js | 141 + .../node_modules/cheerio/lib/index.js.map | 1 + .../addressbook/node_modules/cheerio/lib/load.d.ts | 60 + .../node_modules/cheerio/lib/load.d.ts.map | 1 + .../addressbook/node_modules/cheerio/lib/load.js | 179 + .../node_modules/cheerio/lib/load.js.map | 1 + .../node_modules/cheerio/lib/options.d.ts | 90 + .../node_modules/cheerio/lib/options.d.ts.map | 1 + .../node_modules/cheerio/lib/options.js | 41 + .../node_modules/cheerio/lib/options.js.map | 1 + .../node_modules/cheerio/lib/parse.d.ts | 19 + .../node_modules/cheerio/lib/parse.d.ts.map | 1 + .../addressbook/node_modules/cheerio/lib/parse.js | 78 + .../node_modules/cheerio/lib/parse.js.map | 1 + .../cheerio/lib/parsers/parse5-adapter.d.ts | 20 + .../cheerio/lib/parsers/parse5-adapter.d.ts.map | 1 + .../cheerio/lib/parsers/parse5-adapter.js | 67 + .../cheerio/lib/parsers/parse5-adapter.js.map | 1 + .../addressbook/node_modules/cheerio/lib/slim.d.ts | 20 + .../node_modules/cheerio/lib/slim.d.ts.map | 1 + .../addressbook/node_modules/cheerio/lib/slim.js | 42 + .../node_modules/cheerio/lib/slim.js.map | 1 + .../node_modules/cheerio/lib/static.d.ts | 93 + .../node_modules/cheerio/lib/static.d.ts.map | 1 + .../addressbook/node_modules/cheerio/lib/static.js | 226 + .../node_modules/cheerio/lib/static.js.map | 1 + .../node_modules/cheerio/lib/types.d.ts | 20 + .../node_modules/cheerio/lib/types.d.ts.map | 1 + .../addressbook/node_modules/cheerio/lib/types.js | 3 + .../node_modules/cheerio/lib/types.js.map | 1 + .../node_modules/cheerio/lib/utils.d.ts | 75 + .../node_modules/cheerio/lib/utils.d.ts.map | 1 + .../addressbook/node_modules/cheerio/lib/utils.js | 122 + .../node_modules/cheerio/lib/utils.js.map | 1 + .../addressbook/node_modules/cheerio/package.json | 134 + .../addressbook/node_modules/css-select/LICENSE | 11 + .../addressbook/node_modules/css-select/README.md | 264 + .../node_modules/css-select/lib/attributes.d.ts | 7 + .../css-select/lib/attributes.d.ts.map | 1 + .../node_modules/css-select/lib/attributes.js | 236 + .../node_modules/css-select/lib/attributes.js.map | 1 + .../node_modules/css-select/lib/compile.d.ts | 13 + .../node_modules/css-select/lib/compile.d.ts.map | 1 + .../node_modules/css-select/lib/compile.js | 151 + .../node_modules/css-select/lib/compile.js.map | 1 + .../css-select/lib/esm/attributes.d.ts | 7 + .../css-select/lib/esm/attributes.d.ts.map | 1 + .../node_modules/css-select/lib/esm/attributes.js | 222 + .../css-select/lib/esm/attributes.js.map | 1 + .../node_modules/css-select/lib/esm/compile.d.ts | 13 + .../css-select/lib/esm/compile.d.ts.map | 1 + .../node_modules/css-select/lib/esm/compile.js | 115 + .../node_modules/css-select/lib/esm/compile.js.map | 1 + .../node_modules/css-select/lib/esm/general.d.ts | 3 + .../css-select/lib/esm/general.d.ts.map | 1 + .../node_modules/css-select/lib/esm/general.js | 144 + .../node_modules/css-select/lib/esm/general.js.map | 1 + .../node_modules/css-select/lib/esm/index.d.ts | 50 + .../node_modules/css-select/lib/esm/index.d.ts.map | 1 + .../node_modules/css-select/lib/esm/index.js | 115 + .../node_modules/css-select/lib/esm/index.js.map | 1 + .../node_modules/css-select/lib/esm/package.json | 1 + .../lib/esm/pseudo-selectors/aliases.d.ts | 5 + .../lib/esm/pseudo-selectors/aliases.d.ts.map | 1 + .../css-select/lib/esm/pseudo-selectors/aliases.js | 35 + .../lib/esm/pseudo-selectors/aliases.js.map | 1 + .../lib/esm/pseudo-selectors/filters.d.ts | 4 + .../lib/esm/pseudo-selectors/filters.d.ts.map | 1 + .../css-select/lib/esm/pseudo-selectors/filters.js | 143 + .../lib/esm/pseudo-selectors/filters.js.map | 1 + .../css-select/lib/esm/pseudo-selectors/index.d.ts | 8 + .../lib/esm/pseudo-selectors/index.d.ts.map | 1 + .../css-select/lib/esm/pseudo-selectors/index.js | 40 + .../lib/esm/pseudo-selectors/index.js.map | 1 + .../lib/esm/pseudo-selectors/pseudos.d.ts | 6 + .../lib/esm/pseudo-selectors/pseudos.d.ts.map | 1 + .../css-select/lib/esm/pseudo-selectors/pseudos.js | 79 + .../lib/esm/pseudo-selectors/pseudos.js.map | 1 + .../lib/esm/pseudo-selectors/subselects.d.ts | 9 + .../lib/esm/pseudo-selectors/subselects.d.ts.map | 1 + .../lib/esm/pseudo-selectors/subselects.js | 94 + .../lib/esm/pseudo-selectors/subselects.js.map | 1 + .../node_modules/css-select/lib/esm/sort.d.ts | 12 + .../node_modules/css-select/lib/esm/sort.d.ts.map | 1 + .../node_modules/css-select/lib/esm/sort.js | 79 + .../node_modules/css-select/lib/esm/sort.js.map | 1 + .../node_modules/css-select/lib/esm/types.d.ts | 167 + .../node_modules/css-select/lib/esm/types.d.ts.map | 1 + .../node_modules/css-select/lib/esm/types.js | 2 + .../node_modules/css-select/lib/esm/types.js.map | 1 + .../node_modules/css-select/lib/general.d.ts | 3 + .../node_modules/css-select/lib/general.d.ts.map | 1 + .../node_modules/css-select/lib/general.js | 148 + .../node_modules/css-select/lib/general.js.map | 1 + .../node_modules/css-select/lib/index.d.ts | 50 + .../node_modules/css-select/lib/index.d.ts.map | 1 + .../node_modules/css-select/lib/index.js | 154 + .../node_modules/css-select/lib/index.js.map | 1 + .../css-select/lib/pseudo-selectors/aliases.d.ts | 5 + .../lib/pseudo-selectors/aliases.d.ts.map | 1 + .../css-select/lib/pseudo-selectors/aliases.js | 34 + .../css-select/lib/pseudo-selectors/aliases.js.map | 1 + .../css-select/lib/pseudo-selectors/filters.d.ts | 4 + .../lib/pseudo-selectors/filters.d.ts.map | 1 + .../css-select/lib/pseudo-selectors/filters.js | 157 + .../css-select/lib/pseudo-selectors/filters.js.map | 1 + .../css-select/lib/pseudo-selectors/index.d.ts | 8 + .../css-select/lib/pseudo-selectors/index.d.ts.map | 1 + .../css-select/lib/pseudo-selectors/index.js | 46 + .../css-select/lib/pseudo-selectors/index.js.map | 1 + .../css-select/lib/pseudo-selectors/pseudos.d.ts | 6 + .../lib/pseudo-selectors/pseudos.d.ts.map | 1 + .../css-select/lib/pseudo-selectors/pseudos.js | 93 + .../css-select/lib/pseudo-selectors/pseudos.js.map | 1 + .../lib/pseudo-selectors/subselects.d.ts | 9 + .../lib/pseudo-selectors/subselects.d.ts.map | 1 + .../css-select/lib/pseudo-selectors/subselects.js | 112 + .../lib/pseudo-selectors/subselects.js.map | 1 + .../node_modules/css-select/lib/sort.d.ts | 12 + .../node_modules/css-select/lib/sort.d.ts.map | 1 + .../node_modules/css-select/lib/sort.js | 84 + .../node_modules/css-select/lib/sort.js.map | 1 + .../node_modules/css-select/lib/types.d.ts | 167 + .../node_modules/css-select/lib/types.d.ts.map | 1 + .../node_modules/css-select/lib/types.js | 3 + .../node_modules/css-select/lib/types.js.map | 1 + .../node_modules/css-select/package.json | 81 + .../addressbook/node_modules/css-what/LICENSE | 11 + .../node_modules/css-what/lib/commonjs/index.d.ts | 4 + .../css-what/lib/commonjs/index.d.ts.map | 1 + .../node_modules/css-what/lib/commonjs/index.js | 23 + .../node_modules/css-what/lib/commonjs/parse.d.ts | 20 + .../css-what/lib/commonjs/parse.d.ts.map | 1 + .../node_modules/css-what/lib/commonjs/parse.js | 425 ++ .../css-what/lib/commonjs/stringify.d.ts | 8 + .../css-what/lib/commonjs/stringify.d.ts.map | 1 + .../css-what/lib/commonjs/stringify.js | 138 + .../node_modules/css-what/lib/commonjs/types.d.ts | 70 + .../css-what/lib/commonjs/types.d.ts.map | 1 + .../node_modules/css-what/lib/commonjs/types.js | 42 + .../node_modules/css-what/lib/es/index.d.ts | 4 + .../node_modules/css-what/lib/es/index.d.ts.map | 1 + .../node_modules/css-what/lib/es/index.js | 3 + .../node_modules/css-what/lib/es/parse.d.ts | 20 + .../node_modules/css-what/lib/es/parse.d.ts.map | 1 + .../node_modules/css-what/lib/es/parse.js | 420 ++ .../node_modules/css-what/lib/es/stringify.d.ts | 8 + .../css-what/lib/es/stringify.d.ts.map | 1 + .../node_modules/css-what/lib/es/stringify.js | 126 + .../node_modules/css-what/lib/es/types.d.ts | 70 + .../node_modules/css-what/lib/es/types.d.ts.map | 1 + .../node_modules/css-what/lib/es/types.js | 39 + .../addressbook/node_modules/css-what/package.json | 59 + .../addressbook/node_modules/css-what/readme.md | 69 + .../node_modules/decompress-response/index.d.ts | 22 + .../node_modules/decompress-response/index.js | 58 + .../node_modules/decompress-response/license | 9 + .../node_modules/mimic-response/index.d.ts | 17 + .../node_modules/mimic-response/index.js | 77 + .../node_modules/mimic-response/license | 9 + .../node_modules/mimic-response/package.json | 42 + .../node_modules/mimic-response/readme.md | 78 + .../node_modules/decompress-response/package.json | 56 + .../node_modules/decompress-response/readme.md | 48 + .../node_modules/defer-to-connect/LICENSE | 21 + .../node_modules/defer-to-connect/README.md | 38 + .../defer-to-connect/dist/source/index.d.ts | 10 + .../defer-to-connect/dist/source/index.js | 47 + .../node_modules/defer-to-connect/package.json | 71 + .../node_modules/dom-serializer/LICENSE | 11 + .../node_modules/dom-serializer/README.md | 109 + .../dom-serializer/lib/esm/foreignNames.d.ts | 3 + .../dom-serializer/lib/esm/foreignNames.d.ts.map | 1 + .../dom-serializer/lib/esm/foreignNames.js | 100 + .../node_modules/dom-serializer/lib/esm/index.d.ts | 52 + .../dom-serializer/lib/esm/index.d.ts.map | 1 + .../node_modules/dom-serializer/lib/esm/index.js | 190 + .../dom-serializer/lib/esm/package.json | 1 + .../dom-serializer/lib/foreignNames.d.ts | 3 + .../dom-serializer/lib/foreignNames.d.ts.map | 1 + .../dom-serializer/lib/foreignNames.js | 103 + .../node_modules/dom-serializer/lib/index.d.ts | 52 + .../node_modules/dom-serializer/lib/index.d.ts.map | 1 + .../node_modules/dom-serializer/lib/index.js | 229 + .../node_modules/dom-serializer/package.json | 69 + .../node_modules/domelementtype/LICENSE | 11 + .../node_modules/domelementtype/lib/esm/index.d.ts | 48 + .../domelementtype/lib/esm/index.d.ts.map | 1 + .../node_modules/domelementtype/lib/esm/index.js | 51 + .../domelementtype/lib/esm/package.json | 1 + .../node_modules/domelementtype/lib/index.d.ts | 48 + .../node_modules/domelementtype/lib/index.d.ts.map | 1 + .../node_modules/domelementtype/lib/index.js | 55 + .../node_modules/domelementtype/package.json | 54 + .../node_modules/domelementtype/readme.md | 1 + .../addressbook/node_modules/domhandler/LICENSE | 11 + .../node_modules/domhandler/lib/esm/index.d.ts | 76 + .../node_modules/domhandler/lib/esm/index.d.ts.map | 1 + .../node_modules/domhandler/lib/esm/index.js | 146 + .../node_modules/domhandler/lib/esm/node.d.ts | 245 + .../node_modules/domhandler/lib/esm/node.d.ts.map | 1 + .../node_modules/domhandler/lib/esm/node.js | 338 ++ .../node_modules/domhandler/lib/esm/package.json | 1 + .../node_modules/domhandler/lib/index.d.ts | 76 + .../node_modules/domhandler/lib/index.d.ts.map | 1 + .../node_modules/domhandler/lib/index.js | 165 + .../node_modules/domhandler/lib/node.d.ts | 245 + .../node_modules/domhandler/lib/node.d.ts.map | 1 + .../node_modules/domhandler/lib/node.js | 474 ++ .../node_modules/domhandler/package.json | 73 + .../addressbook/node_modules/domhandler/readme.md | 92 + .../addressbook/node_modules/domutils/LICENSE | 11 + .../node_modules/domutils/lib/esm/feeds.d.ts | 71 + .../node_modules/domutils/lib/esm/feeds.d.ts.map | 1 + .../node_modules/domutils/lib/esm/feeds.js | 183 + .../node_modules/domutils/lib/esm/feeds.js.map | 1 + .../node_modules/domutils/lib/esm/helpers.d.ts | 58 + .../node_modules/domutils/lib/esm/helpers.d.ts.map | 1 + .../node_modules/domutils/lib/esm/helpers.js | 135 + .../node_modules/domutils/lib/esm/helpers.js.map | 1 + .../node_modules/domutils/lib/esm/index.d.ts | 10 + .../node_modules/domutils/lib/esm/index.d.ts.map | 1 + .../node_modules/domutils/lib/esm/index.js | 10 + .../node_modules/domutils/lib/esm/index.js.map | 1 + .../node_modules/domutils/lib/esm/legacy.d.ts | 58 + .../node_modules/domutils/lib/esm/legacy.d.ts.map | 1 + .../node_modules/domutils/lib/esm/legacy.js | 117 + .../node_modules/domutils/lib/esm/legacy.js.map | 1 + .../domutils/lib/esm/manipulation.d.ts | 49 + .../domutils/lib/esm/manipulation.d.ts.map | 1 + .../node_modules/domutils/lib/esm/manipulation.js | 128 + .../domutils/lib/esm/manipulation.js.map | 1 + .../node_modules/domutils/lib/esm/package.json | 1 + .../node_modules/domutils/lib/esm/querying.d.ts | 62 + .../domutils/lib/esm/querying.d.ts.map | 1 + .../node_modules/domutils/lib/esm/querying.js | 119 + .../node_modules/domutils/lib/esm/querying.js.map | 1 + .../node_modules/domutils/lib/esm/stringify.d.ts | 46 + .../domutils/lib/esm/stringify.d.ts.map | 1 + .../node_modules/domutils/lib/esm/stringify.js | 81 + .../node_modules/domutils/lib/esm/stringify.js.map | 1 + .../node_modules/domutils/lib/esm/traversal.d.ts | 65 + .../domutils/lib/esm/traversal.d.ts.map | 1 + .../node_modules/domutils/lib/esm/traversal.js | 110 + .../node_modules/domutils/lib/esm/traversal.js.map | 1 + .../node_modules/domutils/lib/feeds.d.ts | 71 + .../node_modules/domutils/lib/feeds.d.ts.map | 1 + .../addressbook/node_modules/domutils/lib/feeds.js | 191 + .../node_modules/domutils/lib/feeds.js.map | 1 + .../node_modules/domutils/lib/helpers.d.ts | 58 + .../node_modules/domutils/lib/helpers.d.ts.map | 1 + .../node_modules/domutils/lib/helpers.js | 141 + .../node_modules/domutils/lib/helpers.js.map | 1 + .../node_modules/domutils/lib/index.d.ts | 10 + .../node_modules/domutils/lib/index.d.ts.map | 1 + .../addressbook/node_modules/domutils/lib/index.js | 33 + .../node_modules/domutils/lib/index.js.map | 1 + .../node_modules/domutils/lib/legacy.d.ts | 58 + .../node_modules/domutils/lib/legacy.d.ts.map | 1 + .../node_modules/domutils/lib/legacy.js | 131 + .../node_modules/domutils/lib/legacy.js.map | 1 + .../node_modules/domutils/lib/manipulation.d.ts | 49 + .../domutils/lib/manipulation.d.ts.map | 1 + .../node_modules/domutils/lib/manipulation.js | 137 + .../node_modules/domutils/lib/manipulation.js.map | 1 + .../node_modules/domutils/lib/querying.d.ts | 62 + .../node_modules/domutils/lib/querying.d.ts.map | 1 + .../node_modules/domutils/lib/querying.js | 134 + .../node_modules/domutils/lib/querying.js.map | 1 + .../node_modules/domutils/lib/stringify.d.ts | 46 + .../node_modules/domutils/lib/stringify.d.ts.map | 1 + .../node_modules/domutils/lib/stringify.js | 92 + .../node_modules/domutils/lib/stringify.js.map | 1 + .../node_modules/domutils/lib/traversal.d.ts | 65 + .../node_modules/domutils/lib/traversal.d.ts.map | 1 + .../node_modules/domutils/lib/traversal.js | 124 + .../node_modules/domutils/lib/traversal.js.map | 1 + .../addressbook/node_modules/domutils/package.json | 76 + .../addressbook/node_modules/domutils/readme.md | 31 + .../addressbook/node_modules/entities/LICENSE | 11 + .../node_modules/entities/lib/decode.d.ts | 33 + .../node_modules/entities/lib/decode.d.ts.map | 1 + .../node_modules/entities/lib/decode.js | 179 + .../node_modules/entities/lib/decode.js.map | 1 + .../entities/lib/decode_codepoint.d.ts | 4 + .../entities/lib/decode_codepoint.d.ts.map | 1 + .../node_modules/entities/lib/decode_codepoint.js | 60 + .../entities/lib/decode_codepoint.js.map | 1 + .../node_modules/entities/lib/encode.d.ts | 22 + .../node_modules/entities/lib/encode.d.ts.map | 1 + .../node_modules/entities/lib/encode.js | 77 + .../node_modules/entities/lib/encode.js.map | 1 + .../node_modules/entities/lib/escape.d.ts | 43 + .../node_modules/entities/lib/escape.d.ts.map | 1 + .../node_modules/entities/lib/escape.js | 112 + .../node_modules/entities/lib/escape.js.map | 1 + .../node_modules/entities/lib/esm/decode.d.ts | 33 + .../node_modules/entities/lib/esm/decode.d.ts.map | 1 + .../node_modules/entities/lib/esm/decode.js | 166 + .../node_modules/entities/lib/esm/decode.js.map | 1 + .../entities/lib/esm/decode_codepoint.d.ts | 4 + .../entities/lib/esm/decode_codepoint.d.ts.map | 1 + .../entities/lib/esm/decode_codepoint.js | 55 + .../entities/lib/esm/decode_codepoint.js.map | 1 + .../node_modules/entities/lib/esm/encode.d.ts | 22 + .../node_modules/entities/lib/esm/encode.d.ts.map | 1 + .../node_modules/entities/lib/esm/encode.js | 69 + .../node_modules/entities/lib/esm/encode.js.map | 1 + .../node_modules/entities/lib/esm/escape.d.ts | 43 + .../node_modules/entities/lib/esm/escape.d.ts.map | 1 + .../node_modules/entities/lib/esm/escape.js | 106 + .../node_modules/entities/lib/esm/escape.js.map | 1 + .../lib/esm/generated/decode-data-html.d.ts | 3 + .../lib/esm/generated/decode-data-html.d.ts.map | 1 + .../entities/lib/esm/generated/decode-data-html.js | 7 + .../lib/esm/generated/decode-data-html.js.map | 1 + .../lib/esm/generated/decode-data-xml.d.ts | 3 + .../lib/esm/generated/decode-data-xml.d.ts.map | 1 + .../entities/lib/esm/generated/decode-data-xml.js | 7 + .../lib/esm/generated/decode-data-xml.js.map | 1 + .../entities/lib/esm/generated/encode-html.d.ts | 8 + .../lib/esm/generated/encode-html.d.ts.map | 1 + .../entities/lib/esm/generated/encode-html.js | 10 + .../entities/lib/esm/generated/encode-html.js.map | 1 + .../node_modules/entities/lib/esm/index.d.ts | 102 + .../node_modules/entities/lib/esm/index.d.ts.map | 1 + .../node_modules/entities/lib/esm/index.js | 113 + .../node_modules/entities/lib/esm/index.js.map | 1 + .../node_modules/entities/lib/esm/package.json | 1 + .../entities/lib/generated/decode-data-html.d.ts | 3 + .../lib/generated/decode-data-html.d.ts.map | 1 + .../entities/lib/generated/decode-data-html.js | 9 + .../entities/lib/generated/decode-data-html.js.map | 1 + .../entities/lib/generated/decode-data-xml.d.ts | 3 + .../lib/generated/decode-data-xml.d.ts.map | 1 + .../entities/lib/generated/decode-data-xml.js | 9 + .../entities/lib/generated/decode-data-xml.js.map | 1 + .../entities/lib/generated/encode-html.d.ts | 8 + .../entities/lib/generated/encode-html.d.ts.map | 1 + .../entities/lib/generated/encode-html.js | 12 + .../entities/lib/generated/encode-html.js.map | 1 + .../node_modules/entities/lib/index.d.ts | 102 + .../node_modules/entities/lib/index.d.ts.map | 1 + .../addressbook/node_modules/entities/lib/index.js | 137 + .../node_modules/entities/lib/index.js.map | 1 + .../addressbook/node_modules/entities/package.json | 90 + .../addressbook/node_modules/entities/readme.md | 122 + .../form-data-encoder/@type/FileLike.d.ts | 23 + .../form-data-encoder/@type/FormDataEncoder.d.ts | 169 + .../form-data-encoder/@type/FormDataLike.d.ts | 40 + .../form-data-encoder/@type/index.d.ts | 5 + .../form-data-encoder/@type/util/Headers.d.ts | 8 + .../@type/util/createBoundary.d.ts | 12 + .../form-data-encoder/@type/util/escapeName.d.ts | 10 + .../@type/util/getStreamIterator.d.ts | 6 + .../form-data-encoder/@type/util/isFile.d.ts | 34 + .../form-data-encoder/@type/util/isFormData.d.ts | 7 + .../form-data-encoder/@type/util/isFunction.d.ts | 6 + .../@type/util/isPlainObject.d.ts | 1 + .../@type/util/normalizeValue.d.ts | 10 + .../form-data-encoder/@type/util/proxyHeaders.d.ts | 2 + .../node_modules/form-data-encoder/lib/FileLike.js | 1 + .../form-data-encoder/lib/FormDataEncoder.js | 134 + .../form-data-encoder/lib/FormDataLike.js | 1 + .../node_modules/form-data-encoder/lib/index.js | 5 + .../form-data-encoder/lib/util/Headers.js | 1 + .../form-data-encoder/lib/util/createBoundary.js | 9 + .../form-data-encoder/lib/util/escapeName.js | 4 + .../lib/util/getStreamIterator.js | 21 + .../form-data-encoder/lib/util/isFile.js | 8 + .../form-data-encoder/lib/util/isFormData.js | 8 + .../form-data-encoder/lib/util/isFunction.js | 1 + .../form-data-encoder/lib/util/isPlainObject.js | 12 + .../form-data-encoder/lib/util/normalizeValue.js | 8 + .../form-data-encoder/lib/util/proxyHeaders.js | 14 + .../node_modules/form-data-encoder/license | 21 + .../node_modules/form-data-encoder/package.json | 70 + .../node_modules/form-data-encoder/readme.md | 368 ++ .../node_modules/get-stream/buffer-stream.js | 52 + .../addressbook/node_modules/get-stream/index.d.ts | 105 + .../addressbook/node_modules/get-stream/index.js | 61 + .../addressbook/node_modules/get-stream/license | 9 + .../node_modules/get-stream/package.json | 47 + .../addressbook/node_modules/get-stream/readme.md | 124 + .../got/dist/source/as-promise/index.d.ts | 3 + .../got/dist/source/as-promise/index.js | 158 + .../got/dist/source/as-promise/types.d.ts | 38 + .../got/dist/source/as-promise/types.js | 17 + .../dist/source/core/calculate-retry-delay.d.ts | 4 + .../got/dist/source/core/calculate-retry-delay.js | 29 + .../node_modules/got/dist/source/core/errors.d.ts | 90 + .../node_modules/got/dist/source/core/errors.js | 178 + .../node_modules/got/dist/source/core/index.d.ts | 191 + .../node_modules/got/dist/source/core/index.js | 1124 ++++ .../node_modules/got/dist/source/core/options.d.ts | 1255 +++++ .../node_modules/got/dist/source/core/options.js | 1653 ++++++ .../got/dist/source/core/parse-link-header.d.ts | 4 + .../got/dist/source/core/parse-link-header.js | 33 + .../got/dist/source/core/response.d.ts | 110 + .../node_modules/got/dist/source/core/response.js | 39 + .../got/dist/source/core/timed-out.d.ts | 30 + .../node_modules/got/dist/source/core/timed-out.js | 138 + .../got/dist/source/core/utils/get-body-size.d.ts | 3 + .../got/dist/source/core/utils/get-body-size.js | 22 + .../dist/source/core/utils/is-client-request.d.ts | 5 + .../dist/source/core/utils/is-client-request.js | 4 + .../got/dist/source/core/utils/is-form-data.d.ts | 8 + .../got/dist/source/core/utils/is-form-data.js | 4 + .../dist/source/core/utils/is-unix-socket-url.d.ts | 3 + .../dist/source/core/utils/is-unix-socket-url.js | 4 + .../got/dist/source/core/utils/options-to-url.d.ts | 14 + .../got/dist/source/core/utils/options-to-url.js | 50 + .../got/dist/source/core/utils/proxy-events.d.ts | 3 + .../got/dist/source/core/utils/proxy-events.js | 15 + .../got/dist/source/core/utils/unhandle.d.ts | 11 + .../got/dist/source/core/utils/unhandle.js | 20 + .../got/dist/source/core/utils/url-to-options.d.ts | 15 + .../got/dist/source/core/utils/url-to-options.js | 22 + .../got/dist/source/core/utils/weakable-map.d.ts | 8 + .../got/dist/source/core/utils/weakable-map.js | 38 + .../node_modules/got/dist/source/create.d.ts | 3 + .../node_modules/got/dist/source/create.js | 187 + .../node_modules/got/dist/source/index.d.ts | 15 + .../node_modules/got/dist/source/index.js | 20 + .../node_modules/got/dist/source/types.d.ts | 263 + .../node_modules/got/dist/source/types.js | 1 + .../external/addressbook/node_modules/got/license | 9 + .../addressbook/node_modules/got/package.json | 154 + .../addressbook/node_modules/got/readme.md | 523 ++ .../addressbook/node_modules/htmlparser2/LICENSE | 18 + .../addressbook/node_modules/htmlparser2/README.md | 172 + .../node_modules/htmlparser2/lib/Parser.d.ts | 190 + .../node_modules/htmlparser2/lib/Parser.d.ts.map | 1 + .../node_modules/htmlparser2/lib/Parser.js | 518 ++ .../node_modules/htmlparser2/lib/Parser.js.map | 1 + .../node_modules/htmlparser2/lib/Tokenizer.d.ts | 143 + .../htmlparser2/lib/Tokenizer.d.ts.map | 1 + .../node_modules/htmlparser2/lib/Tokenizer.js | 938 ++++ .../node_modules/htmlparser2/lib/Tokenizer.js.map | 1 + .../htmlparser2/lib/WritableStream.d.ts | 17 + .../htmlparser2/lib/WritableStream.d.ts.map | 1 + .../node_modules/htmlparser2/lib/WritableStream.js | 54 + .../htmlparser2/lib/WritableStream.js.map | 1 + .../node_modules/htmlparser2/lib/esm/Parser.d.ts | 190 + .../htmlparser2/lib/esm/Parser.d.ts.map | 1 + .../node_modules/htmlparser2/lib/esm/Parser.js | 489 ++ .../node_modules/htmlparser2/lib/esm/Parser.js.map | 1 + .../htmlparser2/lib/esm/Tokenizer.d.ts | 143 + .../htmlparser2/lib/esm/Tokenizer.d.ts.map | 1 + .../node_modules/htmlparser2/lib/esm/Tokenizer.js | 932 ++++ .../htmlparser2/lib/esm/Tokenizer.js.map | 1 + .../htmlparser2/lib/esm/WritableStream.d.ts | 17 + .../htmlparser2/lib/esm/WritableStream.d.ts.map | 1 + .../htmlparser2/lib/esm/WritableStream.js | 32 + .../htmlparser2/lib/esm/WritableStream.js.map | 1 + .../node_modules/htmlparser2/lib/esm/index.d.ts | 44 + .../htmlparser2/lib/esm/index.d.ts.map | 1 + .../node_modules/htmlparser2/lib/esm/index.js | 62 + .../node_modules/htmlparser2/lib/esm/index.js.map | 1 + .../node_modules/htmlparser2/lib/esm/package.json | 1 + .../node_modules/htmlparser2/lib/index.d.ts | 44 + .../node_modules/htmlparser2/lib/index.d.ts.map | 1 + .../node_modules/htmlparser2/lib/index.js | 100 + .../node_modules/htmlparser2/lib/index.js.map | 1 + .../node_modules/htmlparser2/package.json | 97 + .../node_modules/http-cache-semantics/LICENSE | 9 + .../node_modules/http-cache-semantics/README.md | 203 + .../node_modules/http-cache-semantics/index.js | 674 +++ .../node_modules/http-cache-semantics/package.json | 18 + .../addressbook/node_modules/http2-wrapper/LICENSE | 21 + .../node_modules/http2-wrapper/README.md | 459 ++ .../node_modules/http2-wrapper/index.d.ts | 141 + .../node_modules/http2-wrapper/package.json | 81 + .../node_modules/http2-wrapper/source/agent.js | 796 +++ .../node_modules/http2-wrapper/source/auto.js | 206 + .../http2-wrapper/source/client-request.js | 563 ++ .../http2-wrapper/source/incoming-message.js | 73 + .../node_modules/http2-wrapper/source/index.js | 50 + .../source/proxies/get-auth-headers.js | 17 + .../http2-wrapper/source/proxies/h1-over-h2.js | 90 + .../http2-wrapper/source/proxies/h2-over-h1.js | 48 + .../http2-wrapper/source/proxies/h2-over-h2.js | 32 + .../http2-wrapper/source/proxies/h2-over-hx.js | 40 + .../http2-wrapper/source/proxies/initialize.js | 21 + .../source/proxies/unexpected-status-code-error.js | 11 + .../source/utils/calculate-server-name.js | 29 + .../http2-wrapper/source/utils/check-type.js | 20 + .../source/utils/delay-async-destroy.js | 33 + .../http2-wrapper/source/utils/errors.js | 51 + .../source/utils/is-request-pseudo-header.js | 13 + .../http2-wrapper/source/utils/js-stream-socket.js | 8 + .../http2-wrapper/source/utils/proxy-events.js | 7 + .../source/utils/proxy-socket-handler.js | 102 + .../source/utils/validate-header-name.js | 11 + .../source/utils/validate-header-value.js | 17 + .../node_modules/iconv-lite/.github/dependabot.yml | 11 + .../iconv-lite/.idea/codeStyles/Project.xml | 47 + .../.idea/codeStyles/codeStyleConfig.xml | 5 + .../node_modules/iconv-lite/.idea/iconv-lite.iml | 12 + .../.idea/inspectionProfiles/Project_Default.xml | 6 + .../node_modules/iconv-lite/.idea/modules.xml | 8 + .../node_modules/iconv-lite/.idea/vcs.xml | 6 + .../node_modules/iconv-lite/Changelog.md | 212 + .../addressbook/node_modules/iconv-lite/LICENSE | 21 + .../addressbook/node_modules/iconv-lite/README.md | 130 + .../iconv-lite/encodings/dbcs-codec.js | 597 +++ .../node_modules/iconv-lite/encodings/dbcs-data.js | 188 + .../node_modules/iconv-lite/encodings/index.js | 23 + .../node_modules/iconv-lite/encodings/internal.js | 198 + .../iconv-lite/encodings/sbcs-codec.js | 72 + .../iconv-lite/encodings/sbcs-data-generated.js | 451 ++ .../node_modules/iconv-lite/encodings/sbcs-data.js | 179 + .../iconv-lite/encodings/tables/big5-added.json | 122 + .../iconv-lite/encodings/tables/cp936.json | 264 + .../iconv-lite/encodings/tables/cp949.json | 273 + .../iconv-lite/encodings/tables/cp950.json | 177 + .../iconv-lite/encodings/tables/eucjp.json | 182 + .../encodings/tables/gb18030-ranges.json | 1 + .../iconv-lite/encodings/tables/gbk-added.json | 56 + .../iconv-lite/encodings/tables/shiftjis.json | 125 + .../node_modules/iconv-lite/encodings/utf16.js | 197 + .../node_modules/iconv-lite/encodings/utf32.js | 319 ++ .../node_modules/iconv-lite/encodings/utf7.js | 290 + .../node_modules/iconv-lite/lib/bom-handling.js | 52 + .../node_modules/iconv-lite/lib/index.d.ts | 41 + .../node_modules/iconv-lite/lib/index.js | 180 + .../node_modules/iconv-lite/lib/streams.js | 109 + .../node_modules/iconv-lite/package.json | 44 + .../node_modules/json-buffer/.travis.yml | 3 + .../addressbook/node_modules/json-buffer/LICENSE | 22 + .../addressbook/node_modules/json-buffer/README.md | 24 + .../addressbook/node_modules/json-buffer/index.js | 58 + .../node_modules/json-buffer/package.json | 34 + .../node_modules/json-buffer/test/index.js | 63 + .../addressbook/node_modules/keyv/README.md | 427 ++ .../addressbook/node_modules/keyv/package.json | 58 + .../addressbook/node_modules/keyv/src/index.d.ts | 116 + .../addressbook/node_modules/keyv/src/index.js | 264 + .../node_modules/lowercase-keys/index.d.ts | 14 + .../node_modules/lowercase-keys/index.js | 3 + .../node_modules/lowercase-keys/license | 9 + .../node_modules/lowercase-keys/package.json | 41 + .../node_modules/lowercase-keys/readme.md | 32 + .../node_modules/mimic-response/index.d.ts | 29 + .../node_modules/mimic-response/index.js | 75 + .../node_modules/mimic-response/license | 9 + .../node_modules/mimic-response/package.json | 44 + .../node_modules/mimic-response/readme.md | 78 + .../node_modules/normalize-url/index.d.ts | 301 ++ .../node_modules/normalize-url/index.js | 282 + .../addressbook/node_modules/normalize-url/license | 9 + .../node_modules/normalize-url/package.json | 55 + .../node_modules/normalize-url/readme.md | 324 ++ .../addressbook/node_modules/nth-check/LICENSE | 11 + .../addressbook/node_modules/nth-check/README.md | 136 + .../node_modules/nth-check/lib/compile.d.ts | 55 + .../node_modules/nth-check/lib/compile.d.ts.map | 1 + .../node_modules/nth-check/lib/compile.js | 121 + .../node_modules/nth-check/lib/compile.js.map | 1 + .../node_modules/nth-check/lib/esm/compile.d.ts | 55 + .../nth-check/lib/esm/compile.d.ts.map | 1 + .../node_modules/nth-check/lib/esm/compile.js | 113 + .../node_modules/nth-check/lib/esm/compile.js.map | 1 + .../node_modules/nth-check/lib/esm/index.d.ts | 59 + .../node_modules/nth-check/lib/esm/index.d.ts.map | 1 + .../node_modules/nth-check/lib/esm/index.js | 63 + .../node_modules/nth-check/lib/esm/index.js.map | 1 + .../node_modules/nth-check/lib/esm/package.json | 1 + .../node_modules/nth-check/lib/esm/parse.d.ts | 9 + .../node_modules/nth-check/lib/esm/parse.d.ts.map | 1 + .../node_modules/nth-check/lib/esm/parse.js | 73 + .../node_modules/nth-check/lib/esm/parse.js.map | 1 + .../node_modules/nth-check/lib/index.d.ts | 59 + .../node_modules/nth-check/lib/index.d.ts.map | 1 + .../node_modules/nth-check/lib/index.js | 70 + .../node_modules/nth-check/lib/index.js.map | 1 + .../node_modules/nth-check/lib/parse.d.ts | 9 + .../node_modules/nth-check/lib/parse.d.ts.map | 1 + .../node_modules/nth-check/lib/parse.js | 77 + .../node_modules/nth-check/lib/parse.js.map | 1 + .../node_modules/nth-check/package.json | 78 + .../node_modules/open-graph-scraper/CHANGELOG.md | 271 + .../node_modules/open-graph-scraper/LICENSE | 20 + .../node_modules/open-graph-scraper/README.md | 141 + .../open-graph-scraper/dist/index.d.ts | 36 + .../node_modules/open-graph-scraper/dist/index.js | 56 + .../open-graph-scraper/dist/lib/extract.d.ts | 10 + .../open-graph-scraper/dist/lib/extract.js | 58 + .../open-graph-scraper/dist/lib/fallback.d.ts | 12 + .../open-graph-scraper/dist/lib/fallback.js | 198 + .../open-graph-scraper/dist/lib/fields.d.ts | 12 + .../open-graph-scraper/dist/lib/fields.js | 856 +++ .../open-graph-scraper/dist/lib/media.d.ts | 11 + .../open-graph-scraper/dist/lib/media.js | 163 + .../dist/lib/openGraphScraper.d.ts | 12 + .../dist/lib/openGraphScraper.js | 63 + .../open-graph-scraper/dist/lib/request.d.ts | 9 + .../open-graph-scraper/dist/lib/request.js | 43 + .../open-graph-scraper/dist/lib/types.d.ts | 280 + .../open-graph-scraper/dist/lib/types.js | 3 + .../open-graph-scraper/dist/lib/utils.d.ts | 81 + .../open-graph-scraper/dist/lib/utils.js | 175 + .../node_modules/open-graph-scraper/index.ts | 70 + .../node_modules/open-graph-scraper/package.json | 80 + .../node_modules/p-cancelable/index.d.ts | 168 + .../addressbook/node_modules/p-cancelable/index.js | 110 + .../addressbook/node_modules/p-cancelable/license | 9 + .../node_modules/p-cancelable/package.json | 50 + .../node_modules/p-cancelable/readme.md | 152 + .../parse5-htmlparser2-tree-adapter/LICENSE | 19 + .../parse5-htmlparser2-tree-adapter/README.md | 34 + .../dist/cjs/index.d.ts | 7 + .../dist/cjs/index.js | 215 + .../dist/cjs/package.json | 1 + .../dist/index.d.ts | 7 + .../parse5-htmlparser2-tree-adapter/dist/index.js | 214 + .../parse5-htmlparser2-tree-adapter/package.json | 39 + .../addressbook/node_modules/parse5/LICENSE | 19 + .../addressbook/node_modules/parse5/README.md | 38 + .../parse5/dist/cjs/common/doctype.d.ts | 5 + .../node_modules/parse5/dist/cjs/common/doctype.js | 120 + .../parse5/dist/cjs/common/error-codes.d.ts | 68 + .../parse5/dist/cjs/common/error-codes.js | 67 + .../parse5/dist/cjs/common/foreign-content.d.ts | 10 + .../parse5/dist/cjs/common/foreign-content.js | 239 + .../node_modules/parse5/dist/cjs/common/html.d.ts | 288 + .../node_modules/parse5/dist/cjs/common/html.js | 529 ++ .../node_modules/parse5/dist/cjs/common/token.d.ts | 85 + .../node_modules/parse5/dist/cjs/common/token.js | 25 + .../parse5/dist/cjs/common/unicode.d.ts | 49 + .../node_modules/parse5/dist/cjs/common/unicode.js | 77 + .../node_modules/parse5/dist/cjs/index.d.ts | 60 + .../node_modules/parse5/dist/cjs/index.js | 57 + .../node_modules/parse5/dist/cjs/package.json | 1 + .../dist/cjs/parser/formatting-element-list.d.ts | 37 + .../dist/cjs/parser/formatting-element-list.js | 115 + .../node_modules/parse5/dist/cjs/parser/index.d.ts | 157 + .../node_modules/parse5/dist/cjs/parser/index.js | 3163 +++++++++++ .../parse5/dist/cjs/parser/open-element-stack.d.ts | 53 + .../parse5/dist/cjs/parser/open-element-stack.js | 316 ++ .../parse5/dist/cjs/serializer/index.d.ts | 61 + .../parse5/dist/cjs/serializer/index.js | 173 + .../parse5/dist/cjs/tokenizer/index.d.ts | 248 + .../parse5/dist/cjs/tokenizer/index.js | 2908 ++++++++++ .../parse5/dist/cjs/tokenizer/preprocessor.d.ts | 37 + .../parse5/dist/cjs/tokenizer/preprocessor.js | 199 + .../parse5/dist/cjs/tree-adapters/default.d.ts | 85 + .../parse5/dist/cjs/tree-adapters/default.js | 177 + .../parse5/dist/cjs/tree-adapters/interface.d.ts | 250 + .../parse5/dist/cjs/tree-adapters/interface.js | 3 + .../node_modules/parse5/dist/common/doctype.d.ts | 5 + .../node_modules/parse5/dist/common/doctype.js | 115 + .../parse5/dist/common/error-codes.d.ts | 68 + .../node_modules/parse5/dist/common/error-codes.js | 64 + .../parse5/dist/common/foreign-content.d.ts | 10 + .../parse5/dist/common/foreign-content.js | 230 + .../node_modules/parse5/dist/common/html.d.ts | 288 + .../node_modules/parse5/dist/common/html.js | 523 ++ .../node_modules/parse5/dist/common/token.d.ts | 85 + .../node_modules/parse5/dist/common/token.js | 21 + .../node_modules/parse5/dist/common/unicode.d.ts | 49 + .../node_modules/parse5/dist/common/unicode.js | 69 + .../node_modules/parse5/dist/index.d.ts | 60 + .../addressbook/node_modules/parse5/dist/index.js | 45 + .../dist/parser/formatting-element-list.d.ts | 37 + .../parse5/dist/parser/formatting-element-list.js | 111 + .../node_modules/parse5/dist/parser/index.d.ts | 157 + .../node_modules/parse5/dist/parser/index.js | 3168 +++++++++++ .../parse5/dist/parser/open-element-stack.d.ts | 53 + .../parse5/dist/parser/open-element-stack.js | 312 ++ .../node_modules/parse5/dist/serializer/index.d.ts | 61 + .../node_modules/parse5/dist/serializer/index.js | 168 + .../node_modules/parse5/dist/tokenizer/index.d.ts | 248 + .../node_modules/parse5/dist/tokenizer/index.js | 2904 ++++++++++ .../parse5/dist/tokenizer/preprocessor.d.ts | 37 + .../parse5/dist/tokenizer/preprocessor.js | 195 + .../parse5/dist/tree-adapters/default.d.ts | 85 + .../parse5/dist/tree-adapters/default.js | 174 + .../parse5/dist/tree-adapters/interface.d.ts | 250 + .../parse5/dist/tree-adapters/interface.js | 2 + .../addressbook/node_modules/parse5/package.json | 50 + .../addressbook/node_modules/quick-lru/index.d.ts | 97 + .../addressbook/node_modules/quick-lru/index.js | 123 + .../addressbook/node_modules/quick-lru/license | 9 + .../node_modules/quick-lru/package.json | 43 + .../addressbook/node_modules/quick-lru/readme.md | 111 + .../addressbook/node_modules/resolve-alpn/LICENSE | 22 + .../node_modules/resolve-alpn/README.md | 60 + .../addressbook/node_modules/resolve-alpn/index.js | 43 + .../node_modules/resolve-alpn/package.json | 34 + .../node_modules/responselike/index.d.ts | 86 + .../addressbook/node_modules/responselike/index.js | 39 + .../addressbook/node_modules/responselike/license | 10 + .../node_modules/responselike/package.json | 39 + .../node_modules/responselike/readme.md | 75 + .../addressbook/node_modules/safer-buffer/LICENSE | 21 + .../node_modules/safer-buffer/Porting-Buffer.md | 268 + .../node_modules/safer-buffer/Readme.md | 156 + .../node_modules/safer-buffer/dangerous.js | 58 + .../node_modules/safer-buffer/package.json | 34 + .../addressbook/node_modules/safer-buffer/safer.js | 77 + .../addressbook/node_modules/safer-buffer/tests.js | 406 ++ .../addressbook/node_modules/validator/LICENSE | 20 + .../addressbook/node_modules/validator/README.md | 305 ++ .../addressbook/node_modules/validator/es/index.js | 204 + .../node_modules/validator/es/lib/alpha.js | 140 + .../node_modules/validator/es/lib/blacklist.js | 5 + .../node_modules/validator/es/lib/contains.js | 17 + .../node_modules/validator/es/lib/equals.js | 5 + .../node_modules/validator/es/lib/escape.js | 5 + .../node_modules/validator/es/lib/isAfter.js | 9 + .../node_modules/validator/es/lib/isAlpha.js | 26 + .../validator/es/lib/isAlphanumeric.js | 26 + .../node_modules/validator/es/lib/isAscii.js | 10 + .../node_modules/validator/es/lib/isBIC.js | 16 + .../node_modules/validator/es/lib/isBase32.js | 23 + .../node_modules/validator/es/lib/isBase58.js | 12 + .../node_modules/validator/es/lib/isBase64.js | 23 + .../node_modules/validator/es/lib/isBefore.js | 9 + .../node_modules/validator/es/lib/isBoolean.js | 16 + .../node_modules/validator/es/lib/isBtcAddress.js | 7 + .../node_modules/validator/es/lib/isByteLength.js | 22 + .../node_modules/validator/es/lib/isCreditCard.js | 38 + .../node_modules/validator/es/lib/isCurrency.js | 77 + .../node_modules/validator/es/lib/isDataURI.js | 39 + .../node_modules/validator/es/lib/isDate.js | 86 + .../node_modules/validator/es/lib/isDecimal.js | 26 + .../node_modules/validator/es/lib/isDivisibleBy.js | 6 + .../node_modules/validator/es/lib/isEAN.js | 72 + .../node_modules/validator/es/lib/isEmail.js | 186 + .../node_modules/validator/es/lib/isEmpty.js | 10 + .../validator/es/lib/isEthereumAddress.js | 6 + .../node_modules/validator/es/lib/isFQDN.js | 75 + .../node_modules/validator/es/lib/isFloat.js | 16 + .../node_modules/validator/es/lib/isFullWidth.js | 6 + .../node_modules/validator/es/lib/isHSL.js | 14 + .../node_modules/validator/es/lib/isHalfWidth.js | 6 + .../node_modules/validator/es/lib/isHash.js | 21 + .../node_modules/validator/es/lib/isHexColor.js | 6 + .../node_modules/validator/es/lib/isHexadecimal.js | 6 + .../node_modules/validator/es/lib/isIBAN.js | 138 + .../node_modules/validator/es/lib/isIMEI.js | 47 + .../node_modules/validator/es/lib/isIP.js | 55 + .../node_modules/validator/es/lib/isIPRange.js | 47 + .../node_modules/validator/es/lib/isISBN.js | 55 + .../node_modules/validator/es/lib/isISIN.js | 60 + .../validator/es/lib/isISO31661Alpha2.js | 8 + .../validator/es/lib/isISO31661Alpha3.js | 7 + .../node_modules/validator/es/lib/isISO4217.js | 8 + .../node_modules/validator/es/lib/isISO6391.js | 6 + .../node_modules/validator/es/lib/isISO8601.js | 47 + .../node_modules/validator/es/lib/isISRC.js | 7 + .../node_modules/validator/es/lib/isISSN.js | 23 + .../validator/es/lib/isIdentityCard.js | 395 ++ .../node_modules/validator/es/lib/isIn.js | 28 + .../node_modules/validator/es/lib/isInt.js | 16 + .../node_modules/validator/es/lib/isJSON.js | 26 + .../node_modules/validator/es/lib/isJWT.js | 17 + .../node_modules/validator/es/lib/isLatLong.js | 22 + .../node_modules/validator/es/lib/isLength.js | 24 + .../validator/es/lib/isLicensePlate.js | 56 + .../node_modules/validator/es/lib/isLocale.js | 11 + .../node_modules/validator/es/lib/isLowercase.js | 5 + .../node_modules/validator/es/lib/isLuhnNumber.js | 30 + .../node_modules/validator/es/lib/isLuhnValid.js | 30 + .../node_modules/validator/es/lib/isMACAddress.js | 44 + .../node_modules/validator/es/lib/isMD5.js | 6 + .../node_modules/validator/es/lib/isMagnetURI.js | 11 + .../node_modules/validator/es/lib/isMimeType.js | 39 + .../node_modules/validator/es/lib/isMobilePhone.js | 209 + .../node_modules/validator/es/lib/isMongoId.js | 6 + .../node_modules/validator/es/lib/isMultibyte.js | 10 + .../node_modules/validator/es/lib/isNumeric.js | 12 + .../node_modules/validator/es/lib/isOctal.js | 6 + .../validator/es/lib/isPassportNumber.js | 144 + .../node_modules/validator/es/lib/isPort.js | 7 + .../node_modules/validator/es/lib/isPostalCode.js | 98 + .../node_modules/validator/es/lib/isRFC3339.js | 20 + .../node_modules/validator/es/lib/isRgbColor.js | 15 + .../node_modules/validator/es/lib/isSemVer.js | 14 + .../node_modules/validator/es/lib/isSlug.js | 6 + .../validator/es/lib/isStrongPassword.js | 101 + .../validator/es/lib/isSurrogatePair.js | 6 + .../node_modules/validator/es/lib/isTaxID.js | 1543 ++++++ .../node_modules/validator/es/lib/isTime.js | 20 + .../node_modules/validator/es/lib/isURL.js | 197 + .../node_modules/validator/es/lib/isUUID.js | 14 + .../node_modules/validator/es/lib/isUppercase.js | 5 + .../node_modules/validator/es/lib/isVAT.js | 247 + .../validator/es/lib/isVariableWidth.js | 7 + .../node_modules/validator/es/lib/isWhitelisted.js | 12 + .../node_modules/validator/es/lib/ltrim.js | 7 + .../node_modules/validator/es/lib/matches.js | 10 + .../validator/es/lib/normalizeEmail.js | 138 + .../node_modules/validator/es/lib/rtrim.js | 19 + .../node_modules/validator/es/lib/stripLow.js | 7 + .../node_modules/validator/es/lib/toBoolean.js | 10 + .../node_modules/validator/es/lib/toDate.js | 6 + .../node_modules/validator/es/lib/toFloat.js | 5 + .../node_modules/validator/es/lib/toInt.js | 5 + .../node_modules/validator/es/lib/trim.js | 5 + .../node_modules/validator/es/lib/unescape.js | 7 + .../validator/es/lib/util/algorithms.js | 88 + .../validator/es/lib/util/assertString.js | 12 + .../node_modules/validator/es/lib/util/includes.js | 7 + .../node_modules/validator/es/lib/util/merge.js | 12 + .../validator/es/lib/util/multilineRegex.js | 12 + .../node_modules/validator/es/lib/util/toString.js | 15 + .../node_modules/validator/es/lib/util/typeOf.js | 10 + .../node_modules/validator/es/lib/whitelist.js | 5 + .../addressbook/node_modules/validator/index.js | 318 ++ .../node_modules/validator/lib/alpha.js | 155 + .../node_modules/validator/lib/blacklist.js | 18 + .../node_modules/validator/lib/contains.js | 33 + .../node_modules/validator/lib/equals.js | 18 + .../node_modules/validator/lib/escape.js | 18 + .../node_modules/validator/lib/isAfter.js | 22 + .../node_modules/validator/lib/isAlpha.js | 40 + .../node_modules/validator/lib/isAlphanumeric.js | 40 + .../node_modules/validator/lib/isAscii.js | 22 + .../node_modules/validator/lib/isBIC.js | 31 + .../node_modules/validator/lib/isBase32.js | 38 + .../node_modules/validator/lib/isBase58.js | 26 + .../node_modules/validator/lib/isBase64.js | 38 + .../node_modules/validator/lib/isBefore.js | 23 + .../node_modules/validator/lib/isBoolean.js | 30 + .../node_modules/validator/lib/isBtcAddress.js | 21 + .../node_modules/validator/lib/isByteLength.js | 34 + .../node_modules/validator/lib/isCreditCard.js | 52 + .../node_modules/validator/lib/isCurrency.js | 91 + .../node_modules/validator/lib/isDataURI.js | 53 + .../node_modules/validator/lib/isDate.js | 99 + .../node_modules/validator/lib/isDecimal.js | 42 + .../node_modules/validator/lib/isDivisibleBy.js | 20 + .../node_modules/validator/lib/isEAN.js | 85 + .../node_modules/validator/lib/isEmail.js | 203 + .../node_modules/validator/lib/isEmpty.js | 25 + .../validator/lib/isEthereumAddress.js | 20 + .../node_modules/validator/lib/isFQDN.js | 90 + .../node_modules/validator/lib/isFloat.js | 29 + .../node_modules/validator/lib/isFullWidth.js | 19 + .../node_modules/validator/lib/isHSL.js | 28 + .../node_modules/validator/lib/isHalfWidth.js | 19 + .../node_modules/validator/lib/isHash.js | 35 + .../node_modules/validator/lib/isHexColor.js | 20 + .../node_modules/validator/lib/isHexadecimal.js | 20 + .../node_modules/validator/lib/isIBAN.js | 150 + .../node_modules/validator/lib/isIMEI.js | 61 + .../addressbook/node_modules/validator/lib/isIP.js | 68 + .../node_modules/validator/lib/isIPRange.js | 62 + .../node_modules/validator/lib/isISBN.js | 69 + .../node_modules/validator/lib/isISIN.js | 73 + .../node_modules/validator/lib/isISO31661Alpha2.js | 22 + .../node_modules/validator/lib/isISO31661Alpha3.js | 21 + .../node_modules/validator/lib/isISO4217.js | 22 + .../node_modules/validator/lib/isISO6391.js | 20 + .../node_modules/validator/lib/isISO8601.js | 59 + .../node_modules/validator/lib/isISRC.js | 21 + .../node_modules/validator/lib/isISSN.js | 37 + .../node_modules/validator/lib/isIdentityCard.js | 410 ++ .../addressbook/node_modules/validator/lib/isIn.js | 42 + .../node_modules/validator/lib/isInt.js | 30 + .../node_modules/validator/lib/isJSON.js | 41 + .../node_modules/validator/lib/isJWT.js | 31 + .../node_modules/validator/lib/isLatLong.js | 37 + .../node_modules/validator/lib/isLength.js | 36 + .../node_modules/validator/lib/isLicensePlate.js | 70 + .../node_modules/validator/lib/isLocale.js | 25 + .../node_modules/validator/lib/isLowercase.js | 18 + .../node_modules/validator/lib/isLuhnNumber.js | 43 + .../node_modules/validator/lib/isLuhnValid.js | 43 + .../node_modules/validator/lib/isMACAddress.js | 58 + .../node_modules/validator/lib/isMD5.js | 20 + .../node_modules/validator/lib/isMagnetURI.js | 25 + .../node_modules/validator/lib/isMimeType.js | 51 + .../node_modules/validator/lib/isMobilePhone.js | 222 + .../node_modules/validator/lib/isMongoId.js | 20 + .../node_modules/validator/lib/isMultibyte.js | 22 + .../node_modules/validator/lib/isNumeric.js | 27 + .../node_modules/validator/lib/isOctal.js | 20 + .../node_modules/validator/lib/isPassportNumber.js | 156 + .../node_modules/validator/lib/isPort.js | 20 + .../node_modules/validator/lib/isPostalCode.js | 111 + .../node_modules/validator/lib/isRFC3339.js | 33 + .../node_modules/validator/lib/isRgbColor.js | 29 + .../node_modules/validator/lib/isSemVer.js | 28 + .../node_modules/validator/lib/isSlug.js | 20 + .../node_modules/validator/lib/isStrongPassword.js | 115 + .../node_modules/validator/lib/isSurrogatePair.js | 20 + .../node_modules/validator/lib/isTaxID.js | 1563 ++++++ .../node_modules/validator/lib/isTime.js | 34 + .../node_modules/validator/lib/isURL.js | 212 + .../node_modules/validator/lib/isUUID.js | 28 + .../node_modules/validator/lib/isUppercase.js | 18 + .../node_modules/validator/lib/isVAT.js | 266 + .../node_modules/validator/lib/isVariableWidth.js | 22 + .../node_modules/validator/lib/isWhitelisted.js | 25 + .../node_modules/validator/lib/ltrim.js | 20 + .../node_modules/validator/lib/matches.js | 23 + .../node_modules/validator/lib/normalizeEmail.js | 151 + .../node_modules/validator/lib/rtrim.js | 32 + .../node_modules/validator/lib/stripLow.js | 21 + .../node_modules/validator/lib/toBoolean.js | 23 + .../node_modules/validator/lib/toDate.js | 19 + .../node_modules/validator/lib/toFloat.js | 18 + .../node_modules/validator/lib/toInt.js | 18 + .../addressbook/node_modules/validator/lib/trim.js | 19 + .../node_modules/validator/lib/unescape.js | 20 + .../node_modules/validator/lib/util/algorithms.js | 101 + .../validator/lib/util/assertString.js | 22 + .../node_modules/validator/lib/util/includes.js | 17 + .../node_modules/validator/lib/util/merge.js | 22 + .../validator/lib/util/multilineRegex.js | 22 + .../node_modules/validator/lib/util/toString.js | 25 + .../node_modules/validator/lib/util/typeOf.js | 20 + .../node_modules/validator/lib/whitelist.js | 18 + .../node_modules/validator/package.json | 75 + .../node_modules/validator/validator.js | 5561 ++++++++++++++++++++ .../node_modules/validator/validator.min.js | 23 + includes/external/addressbook/package-lock.json | 765 ++- includes/external/addressbook/package.json | 3 +- includes/external/addressbook/website.js | 57 + 1109 files changed, 100682 insertions(+), 2 deletions(-) create mode 100644 includes/external/addressbook/email.js create mode 100644 includes/external/addressbook/node_modules/@sindresorhus/is/dist/index.d.ts create mode 100644 includes/external/addressbook/node_modules/@sindresorhus/is/dist/index.js create mode 100644 includes/external/addressbook/node_modules/@sindresorhus/is/dist/types.d.ts create mode 100644 includes/external/addressbook/node_modules/@sindresorhus/is/dist/types.js create mode 100644 includes/external/addressbook/node_modules/@sindresorhus/is/license create mode 100644 includes/external/addressbook/node_modules/@sindresorhus/is/package.json create mode 100644 includes/external/addressbook/node_modules/@sindresorhus/is/readme.md create mode 100644 includes/external/addressbook/node_modules/@szmarczak/http-timer/LICENSE create mode 100644 includes/external/addressbook/node_modules/@szmarczak/http-timer/README.md create mode 100644 includes/external/addressbook/node_modules/@szmarczak/http-timer/dist/source/index.d.ts create mode 100644 includes/external/addressbook/node_modules/@szmarczak/http-timer/dist/source/index.js create mode 100644 includes/external/addressbook/node_modules/@szmarczak/http-timer/package.json create mode 100755 includes/external/addressbook/node_modules/@types/http-cache-semantics/LICENSE create mode 100755 includes/external/addressbook/node_modules/@types/http-cache-semantics/README.md create mode 100755 includes/external/addressbook/node_modules/@types/http-cache-semantics/index.d.ts create mode 100755 includes/external/addressbook/node_modules/@types/http-cache-semantics/package.json create mode 100644 includes/external/addressbook/node_modules/boolbase/README.md create mode 100644 includes/external/addressbook/node_modules/boolbase/index.js create mode 100644 includes/external/addressbook/node_modules/boolbase/package.json create mode 100644 includes/external/addressbook/node_modules/cacheable-lookup/LICENSE create mode 100644 includes/external/addressbook/node_modules/cacheable-lookup/README.md create mode 100644 includes/external/addressbook/node_modules/cacheable-lookup/index.d.ts create mode 100644 includes/external/addressbook/node_modules/cacheable-lookup/package.json create mode 100644 includes/external/addressbook/node_modules/cacheable-lookup/source/index.js create mode 100644 includes/external/addressbook/node_modules/cacheable-request/LICENSE create mode 100644 includes/external/addressbook/node_modules/cacheable-request/README.md create mode 100644 includes/external/addressbook/node_modules/cacheable-request/dist/index.d.ts create mode 100644 includes/external/addressbook/node_modules/cacheable-request/dist/index.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cacheable-request/dist/index.js create mode 100644 includes/external/addressbook/node_modules/cacheable-request/dist/index.js.map create mode 100644 includes/external/addressbook/node_modules/cacheable-request/dist/types.d.ts create mode 100644 includes/external/addressbook/node_modules/cacheable-request/dist/types.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cacheable-request/dist/types.js create mode 100644 includes/external/addressbook/node_modules/cacheable-request/dist/types.js.map create mode 100644 includes/external/addressbook/node_modules/cacheable-request/package.json create mode 100644 includes/external/addressbook/node_modules/chardet/LICENSE create mode 100644 includes/external/addressbook/node_modules/chardet/README.md create mode 100644 includes/external/addressbook/node_modules/chardet/lib/encoding/index.d.ts create mode 100644 includes/external/addressbook/node_modules/chardet/lib/encoding/index.js create mode 100644 includes/external/addressbook/node_modules/chardet/lib/encoding/index.js.map create mode 100644 includes/external/addressbook/node_modules/chardet/lib/encoding/iso2022.d.ts create mode 100644 includes/external/addressbook/node_modules/chardet/lib/encoding/iso2022.js create mode 100644 includes/external/addressbook/node_modules/chardet/lib/encoding/iso2022.js.map create mode 100644 includes/external/addressbook/node_modules/chardet/lib/encoding/mbcs.d.ts create mode 100644 includes/external/addressbook/node_modules/chardet/lib/encoding/mbcs.js create mode 100644 includes/external/addressbook/node_modules/chardet/lib/encoding/mbcs.js.map create mode 100644 includes/external/addressbook/node_modules/chardet/lib/encoding/sbcs.d.ts create mode 100644 includes/external/addressbook/node_modules/chardet/lib/encoding/sbcs.js create mode 100644 includes/external/addressbook/node_modules/chardet/lib/encoding/sbcs.js.map create mode 100644 includes/external/addressbook/node_modules/chardet/lib/encoding/unicode.d.ts create mode 100644 includes/external/addressbook/node_modules/chardet/lib/encoding/unicode.js create mode 100644 includes/external/addressbook/node_modules/chardet/lib/encoding/unicode.js.map create mode 100644 includes/external/addressbook/node_modules/chardet/lib/encoding/utf8.d.ts create mode 100644 includes/external/addressbook/node_modules/chardet/lib/encoding/utf8.js create mode 100644 includes/external/addressbook/node_modules/chardet/lib/encoding/utf8.js.map create mode 100644 includes/external/addressbook/node_modules/chardet/lib/fs/browser.d.ts create mode 100644 includes/external/addressbook/node_modules/chardet/lib/fs/browser.js create mode 100644 includes/external/addressbook/node_modules/chardet/lib/fs/browser.js.map create mode 100644 includes/external/addressbook/node_modules/chardet/lib/fs/node.d.ts create mode 100644 includes/external/addressbook/node_modules/chardet/lib/fs/node.js create mode 100644 includes/external/addressbook/node_modules/chardet/lib/fs/node.js.map create mode 100644 includes/external/addressbook/node_modules/chardet/lib/index.d.ts create mode 100644 includes/external/addressbook/node_modules/chardet/lib/index.js create mode 100644 includes/external/addressbook/node_modules/chardet/lib/index.js.map create mode 100644 includes/external/addressbook/node_modules/chardet/lib/match.d.ts create mode 100644 includes/external/addressbook/node_modules/chardet/lib/match.js create mode 100644 includes/external/addressbook/node_modules/chardet/lib/match.js.map create mode 100644 includes/external/addressbook/node_modules/chardet/package.json create mode 100644 includes/external/addressbook/node_modules/cheerio-select/LICENSE create mode 100644 includes/external/addressbook/node_modules/cheerio-select/README.md create mode 100644 includes/external/addressbook/node_modules/cheerio-select/lib/esm/helpers.d.ts create mode 100644 includes/external/addressbook/node_modules/cheerio-select/lib/esm/helpers.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cheerio-select/lib/esm/helpers.js create mode 100644 includes/external/addressbook/node_modules/cheerio-select/lib/esm/helpers.js.map create mode 100644 includes/external/addressbook/node_modules/cheerio-select/lib/esm/index.d.ts create mode 100644 includes/external/addressbook/node_modules/cheerio-select/lib/esm/index.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cheerio-select/lib/esm/index.js create mode 100644 includes/external/addressbook/node_modules/cheerio-select/lib/esm/index.js.map create mode 100644 includes/external/addressbook/node_modules/cheerio-select/lib/esm/package.json create mode 100644 includes/external/addressbook/node_modules/cheerio-select/lib/esm/positionals.d.ts create mode 100644 includes/external/addressbook/node_modules/cheerio-select/lib/esm/positionals.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cheerio-select/lib/esm/positionals.js create mode 100644 includes/external/addressbook/node_modules/cheerio-select/lib/esm/positionals.js.map create mode 100644 includes/external/addressbook/node_modules/cheerio-select/lib/helpers.d.ts create mode 100644 includes/external/addressbook/node_modules/cheerio-select/lib/helpers.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cheerio-select/lib/helpers.js create mode 100644 includes/external/addressbook/node_modules/cheerio-select/lib/helpers.js.map create mode 100644 includes/external/addressbook/node_modules/cheerio-select/lib/index.d.ts create mode 100644 includes/external/addressbook/node_modules/cheerio-select/lib/index.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cheerio-select/lib/index.js create mode 100644 includes/external/addressbook/node_modules/cheerio-select/lib/index.js.map create mode 100644 includes/external/addressbook/node_modules/cheerio-select/lib/positionals.d.ts create mode 100644 includes/external/addressbook/node_modules/cheerio-select/lib/positionals.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cheerio-select/lib/positionals.js create mode 100644 includes/external/addressbook/node_modules/cheerio-select/lib/positionals.js.map create mode 100644 includes/external/addressbook/node_modules/cheerio-select/package.json create mode 100644 includes/external/addressbook/node_modules/cheerio/LICENSE create mode 100644 includes/external/addressbook/node_modules/cheerio/Readme.md create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/api/attributes.d.ts create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/api/attributes.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/api/attributes.js create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/api/attributes.js.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/api/css.d.ts create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/api/css.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/api/css.js create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/api/css.js.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/api/forms.d.ts create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/api/forms.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/api/forms.js create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/api/forms.js.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/api/manipulation.d.ts create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/api/manipulation.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/api/manipulation.js create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/api/manipulation.js.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/api/traversing.d.ts create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/api/traversing.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/api/traversing.js create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/api/traversing.js.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/cheerio.d.ts create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/cheerio.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/cheerio.js create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/cheerio.js.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/api/attributes.d.ts create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/api/attributes.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/api/attributes.js create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/api/attributes.js.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/api/css.d.ts create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/api/css.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/api/css.js create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/api/css.js.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/api/forms.d.ts create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/api/forms.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/api/forms.js create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/api/forms.js.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/api/manipulation.d.ts create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/api/manipulation.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/api/manipulation.js create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/api/manipulation.js.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/api/traversing.d.ts create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/api/traversing.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/api/traversing.js create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/api/traversing.js.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/cheerio.d.ts create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/cheerio.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/cheerio.js create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/cheerio.js.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/index.d.ts create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/index.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/index.js create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/index.js.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/load.d.ts create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/load.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/load.js create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/load.js.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/options.d.ts create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/options.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/options.js create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/options.js.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/package.json create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/parse.d.ts create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/parse.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/parse.js create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/parse.js.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/parsers/parse5-adapter.d.ts create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/parsers/parse5-adapter.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/parsers/parse5-adapter.js create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/parsers/parse5-adapter.js.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/slim.d.ts create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/slim.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/slim.js create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/slim.js.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/static.d.ts create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/static.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/static.js create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/static.js.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/types.d.ts create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/types.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/types.js create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/types.js.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/utils.d.ts create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/utils.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/utils.js create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/esm/utils.js.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/index.d.ts create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/index.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/index.js create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/index.js.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/load.d.ts create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/load.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/load.js create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/load.js.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/options.d.ts create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/options.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/options.js create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/options.js.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/parse.d.ts create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/parse.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/parse.js create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/parse.js.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/parsers/parse5-adapter.d.ts create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/parsers/parse5-adapter.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/parsers/parse5-adapter.js create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/parsers/parse5-adapter.js.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/slim.d.ts create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/slim.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/slim.js create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/slim.js.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/static.d.ts create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/static.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/static.js create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/static.js.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/types.d.ts create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/types.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/types.js create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/types.js.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/utils.d.ts create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/utils.d.ts.map create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/utils.js create mode 100644 includes/external/addressbook/node_modules/cheerio/lib/utils.js.map create mode 100644 includes/external/addressbook/node_modules/cheerio/package.json create mode 100644 includes/external/addressbook/node_modules/css-select/LICENSE create mode 100644 includes/external/addressbook/node_modules/css-select/README.md create mode 100644 includes/external/addressbook/node_modules/css-select/lib/attributes.d.ts create mode 100644 includes/external/addressbook/node_modules/css-select/lib/attributes.d.ts.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/attributes.js create mode 100644 includes/external/addressbook/node_modules/css-select/lib/attributes.js.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/compile.d.ts create mode 100644 includes/external/addressbook/node_modules/css-select/lib/compile.d.ts.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/compile.js create mode 100644 includes/external/addressbook/node_modules/css-select/lib/compile.js.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/attributes.d.ts create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/attributes.d.ts.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/attributes.js create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/attributes.js.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/compile.d.ts create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/compile.d.ts.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/compile.js create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/compile.js.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/general.d.ts create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/general.d.ts.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/general.js create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/general.js.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/index.d.ts create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/index.d.ts.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/index.js create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/index.js.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/package.json create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/pseudo-selectors/aliases.d.ts create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/pseudo-selectors/aliases.d.ts.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/pseudo-selectors/aliases.js create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/pseudo-selectors/aliases.js.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/pseudo-selectors/filters.d.ts create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/pseudo-selectors/filters.d.ts.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/pseudo-selectors/filters.js create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/pseudo-selectors/filters.js.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/pseudo-selectors/index.d.ts create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/pseudo-selectors/index.d.ts.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/pseudo-selectors/index.js create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/pseudo-selectors/index.js.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/pseudo-selectors/pseudos.d.ts create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/pseudo-selectors/pseudos.d.ts.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/pseudo-selectors/pseudos.js create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/pseudo-selectors/pseudos.js.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/pseudo-selectors/subselects.d.ts create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/pseudo-selectors/subselects.d.ts.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/pseudo-selectors/subselects.js create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/pseudo-selectors/subselects.js.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/sort.d.ts create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/sort.d.ts.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/sort.js create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/sort.js.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/types.d.ts create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/types.d.ts.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/types.js create mode 100644 includes/external/addressbook/node_modules/css-select/lib/esm/types.js.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/general.d.ts create mode 100644 includes/external/addressbook/node_modules/css-select/lib/general.d.ts.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/general.js create mode 100644 includes/external/addressbook/node_modules/css-select/lib/general.js.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/index.d.ts create mode 100644 includes/external/addressbook/node_modules/css-select/lib/index.d.ts.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/index.js create mode 100644 includes/external/addressbook/node_modules/css-select/lib/index.js.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/pseudo-selectors/aliases.d.ts create mode 100644 includes/external/addressbook/node_modules/css-select/lib/pseudo-selectors/aliases.d.ts.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/pseudo-selectors/aliases.js create mode 100644 includes/external/addressbook/node_modules/css-select/lib/pseudo-selectors/aliases.js.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/pseudo-selectors/filters.d.ts create mode 100644 includes/external/addressbook/node_modules/css-select/lib/pseudo-selectors/filters.d.ts.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/pseudo-selectors/filters.js create mode 100644 includes/external/addressbook/node_modules/css-select/lib/pseudo-selectors/filters.js.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/pseudo-selectors/index.d.ts create mode 100644 includes/external/addressbook/node_modules/css-select/lib/pseudo-selectors/index.d.ts.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/pseudo-selectors/index.js create mode 100644 includes/external/addressbook/node_modules/css-select/lib/pseudo-selectors/index.js.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/pseudo-selectors/pseudos.d.ts create mode 100644 includes/external/addressbook/node_modules/css-select/lib/pseudo-selectors/pseudos.d.ts.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/pseudo-selectors/pseudos.js create mode 100644 includes/external/addressbook/node_modules/css-select/lib/pseudo-selectors/pseudos.js.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/pseudo-selectors/subselects.d.ts create mode 100644 includes/external/addressbook/node_modules/css-select/lib/pseudo-selectors/subselects.d.ts.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/pseudo-selectors/subselects.js create mode 100644 includes/external/addressbook/node_modules/css-select/lib/pseudo-selectors/subselects.js.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/sort.d.ts create mode 100644 includes/external/addressbook/node_modules/css-select/lib/sort.d.ts.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/sort.js create mode 100644 includes/external/addressbook/node_modules/css-select/lib/sort.js.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/types.d.ts create mode 100644 includes/external/addressbook/node_modules/css-select/lib/types.d.ts.map create mode 100644 includes/external/addressbook/node_modules/css-select/lib/types.js create mode 100644 includes/external/addressbook/node_modules/css-select/lib/types.js.map create mode 100644 includes/external/addressbook/node_modules/css-select/package.json create mode 100644 includes/external/addressbook/node_modules/css-what/LICENSE create mode 100644 includes/external/addressbook/node_modules/css-what/lib/commonjs/index.d.ts create mode 100644 includes/external/addressbook/node_modules/css-what/lib/commonjs/index.d.ts.map create mode 100644 includes/external/addressbook/node_modules/css-what/lib/commonjs/index.js create mode 100644 includes/external/addressbook/node_modules/css-what/lib/commonjs/parse.d.ts create mode 100644 includes/external/addressbook/node_modules/css-what/lib/commonjs/parse.d.ts.map create mode 100644 includes/external/addressbook/node_modules/css-what/lib/commonjs/parse.js create mode 100644 includes/external/addressbook/node_modules/css-what/lib/commonjs/stringify.d.ts create mode 100644 includes/external/addressbook/node_modules/css-what/lib/commonjs/stringify.d.ts.map create mode 100644 includes/external/addressbook/node_modules/css-what/lib/commonjs/stringify.js create mode 100644 includes/external/addressbook/node_modules/css-what/lib/commonjs/types.d.ts create mode 100644 includes/external/addressbook/node_modules/css-what/lib/commonjs/types.d.ts.map create mode 100644 includes/external/addressbook/node_modules/css-what/lib/commonjs/types.js create mode 100644 includes/external/addressbook/node_modules/css-what/lib/es/index.d.ts create mode 100644 includes/external/addressbook/node_modules/css-what/lib/es/index.d.ts.map create mode 100644 includes/external/addressbook/node_modules/css-what/lib/es/index.js create mode 100644 includes/external/addressbook/node_modules/css-what/lib/es/parse.d.ts create mode 100644 includes/external/addressbook/node_modules/css-what/lib/es/parse.d.ts.map create mode 100644 includes/external/addressbook/node_modules/css-what/lib/es/parse.js create mode 100644 includes/external/addressbook/node_modules/css-what/lib/es/stringify.d.ts create mode 100644 includes/external/addressbook/node_modules/css-what/lib/es/stringify.d.ts.map create mode 100644 includes/external/addressbook/node_modules/css-what/lib/es/stringify.js create mode 100644 includes/external/addressbook/node_modules/css-what/lib/es/types.d.ts create mode 100644 includes/external/addressbook/node_modules/css-what/lib/es/types.d.ts.map create mode 100644 includes/external/addressbook/node_modules/css-what/lib/es/types.js create mode 100644 includes/external/addressbook/node_modules/css-what/package.json create mode 100644 includes/external/addressbook/node_modules/css-what/readme.md create mode 100644 includes/external/addressbook/node_modules/decompress-response/index.d.ts create mode 100644 includes/external/addressbook/node_modules/decompress-response/index.js create mode 100644 includes/external/addressbook/node_modules/decompress-response/license create mode 100644 includes/external/addressbook/node_modules/decompress-response/node_modules/mimic-response/index.d.ts create mode 100644 includes/external/addressbook/node_modules/decompress-response/node_modules/mimic-response/index.js create mode 100644 includes/external/addressbook/node_modules/decompress-response/node_modules/mimic-response/license create mode 100644 includes/external/addressbook/node_modules/decompress-response/node_modules/mimic-response/package.json create mode 100644 includes/external/addressbook/node_modules/decompress-response/node_modules/mimic-response/readme.md create mode 100644 includes/external/addressbook/node_modules/decompress-response/package.json create mode 100644 includes/external/addressbook/node_modules/decompress-response/readme.md create mode 100644 includes/external/addressbook/node_modules/defer-to-connect/LICENSE create mode 100644 includes/external/addressbook/node_modules/defer-to-connect/README.md create mode 100644 includes/external/addressbook/node_modules/defer-to-connect/dist/source/index.d.ts create mode 100644 includes/external/addressbook/node_modules/defer-to-connect/dist/source/index.js create mode 100644 includes/external/addressbook/node_modules/defer-to-connect/package.json create mode 100644 includes/external/addressbook/node_modules/dom-serializer/LICENSE create mode 100644 includes/external/addressbook/node_modules/dom-serializer/README.md create mode 100644 includes/external/addressbook/node_modules/dom-serializer/lib/esm/foreignNames.d.ts create mode 100644 includes/external/addressbook/node_modules/dom-serializer/lib/esm/foreignNames.d.ts.map create mode 100644 includes/external/addressbook/node_modules/dom-serializer/lib/esm/foreignNames.js create mode 100644 includes/external/addressbook/node_modules/dom-serializer/lib/esm/index.d.ts create mode 100644 includes/external/addressbook/node_modules/dom-serializer/lib/esm/index.d.ts.map create mode 100644 includes/external/addressbook/node_modules/dom-serializer/lib/esm/index.js create mode 100644 includes/external/addressbook/node_modules/dom-serializer/lib/esm/package.json create mode 100644 includes/external/addressbook/node_modules/dom-serializer/lib/foreignNames.d.ts create mode 100644 includes/external/addressbook/node_modules/dom-serializer/lib/foreignNames.d.ts.map create mode 100644 includes/external/addressbook/node_modules/dom-serializer/lib/foreignNames.js create mode 100644 includes/external/addressbook/node_modules/dom-serializer/lib/index.d.ts create mode 100644 includes/external/addressbook/node_modules/dom-serializer/lib/index.d.ts.map create mode 100644 includes/external/addressbook/node_modules/dom-serializer/lib/index.js create mode 100644 includes/external/addressbook/node_modules/dom-serializer/package.json create mode 100644 includes/external/addressbook/node_modules/domelementtype/LICENSE create mode 100644 includes/external/addressbook/node_modules/domelementtype/lib/esm/index.d.ts create mode 100644 includes/external/addressbook/node_modules/domelementtype/lib/esm/index.d.ts.map create mode 100644 includes/external/addressbook/node_modules/domelementtype/lib/esm/index.js create mode 100644 includes/external/addressbook/node_modules/domelementtype/lib/esm/package.json create mode 100644 includes/external/addressbook/node_modules/domelementtype/lib/index.d.ts create mode 100644 includes/external/addressbook/node_modules/domelementtype/lib/index.d.ts.map create mode 100644 includes/external/addressbook/node_modules/domelementtype/lib/index.js create mode 100644 includes/external/addressbook/node_modules/domelementtype/package.json create mode 100644 includes/external/addressbook/node_modules/domelementtype/readme.md create mode 100644 includes/external/addressbook/node_modules/domhandler/LICENSE create mode 100644 includes/external/addressbook/node_modules/domhandler/lib/esm/index.d.ts create mode 100644 includes/external/addressbook/node_modules/domhandler/lib/esm/index.d.ts.map create mode 100644 includes/external/addressbook/node_modules/domhandler/lib/esm/index.js create mode 100644 includes/external/addressbook/node_modules/domhandler/lib/esm/node.d.ts create mode 100644 includes/external/addressbook/node_modules/domhandler/lib/esm/node.d.ts.map create mode 100644 includes/external/addressbook/node_modules/domhandler/lib/esm/node.js create mode 100644 includes/external/addressbook/node_modules/domhandler/lib/esm/package.json create mode 100644 includes/external/addressbook/node_modules/domhandler/lib/index.d.ts create mode 100644 includes/external/addressbook/node_modules/domhandler/lib/index.d.ts.map create mode 100644 includes/external/addressbook/node_modules/domhandler/lib/index.js create mode 100644 includes/external/addressbook/node_modules/domhandler/lib/node.d.ts create mode 100644 includes/external/addressbook/node_modules/domhandler/lib/node.d.ts.map create mode 100644 includes/external/addressbook/node_modules/domhandler/lib/node.js create mode 100644 includes/external/addressbook/node_modules/domhandler/package.json create mode 100644 includes/external/addressbook/node_modules/domhandler/readme.md create mode 100644 includes/external/addressbook/node_modules/domutils/LICENSE create mode 100644 includes/external/addressbook/node_modules/domutils/lib/esm/feeds.d.ts create mode 100644 includes/external/addressbook/node_modules/domutils/lib/esm/feeds.d.ts.map create mode 100644 includes/external/addressbook/node_modules/domutils/lib/esm/feeds.js create mode 100644 includes/external/addressbook/node_modules/domutils/lib/esm/feeds.js.map create mode 100644 includes/external/addressbook/node_modules/domutils/lib/esm/helpers.d.ts create mode 100644 includes/external/addressbook/node_modules/domutils/lib/esm/helpers.d.ts.map create mode 100644 includes/external/addressbook/node_modules/domutils/lib/esm/helpers.js create mode 100644 includes/external/addressbook/node_modules/domutils/lib/esm/helpers.js.map create mode 100644 includes/external/addressbook/node_modules/domutils/lib/esm/index.d.ts create mode 100644 includes/external/addressbook/node_modules/domutils/lib/esm/index.d.ts.map create mode 100644 includes/external/addressbook/node_modules/domutils/lib/esm/index.js create mode 100644 includes/external/addressbook/node_modules/domutils/lib/esm/index.js.map create mode 100644 includes/external/addressbook/node_modules/domutils/lib/esm/legacy.d.ts create mode 100644 includes/external/addressbook/node_modules/domutils/lib/esm/legacy.d.ts.map create mode 100644 includes/external/addressbook/node_modules/domutils/lib/esm/legacy.js create mode 100644 includes/external/addressbook/node_modules/domutils/lib/esm/legacy.js.map create mode 100644 includes/external/addressbook/node_modules/domutils/lib/esm/manipulation.d.ts create mode 100644 includes/external/addressbook/node_modules/domutils/lib/esm/manipulation.d.ts.map create mode 100644 includes/external/addressbook/node_modules/domutils/lib/esm/manipulation.js create mode 100644 includes/external/addressbook/node_modules/domutils/lib/esm/manipulation.js.map create mode 100644 includes/external/addressbook/node_modules/domutils/lib/esm/package.json create mode 100644 includes/external/addressbook/node_modules/domutils/lib/esm/querying.d.ts create mode 100644 includes/external/addressbook/node_modules/domutils/lib/esm/querying.d.ts.map create mode 100644 includes/external/addressbook/node_modules/domutils/lib/esm/querying.js create mode 100644 includes/external/addressbook/node_modules/domutils/lib/esm/querying.js.map create mode 100644 includes/external/addressbook/node_modules/domutils/lib/esm/stringify.d.ts create mode 100644 includes/external/addressbook/node_modules/domutils/lib/esm/stringify.d.ts.map create mode 100644 includes/external/addressbook/node_modules/domutils/lib/esm/stringify.js create mode 100644 includes/external/addressbook/node_modules/domutils/lib/esm/stringify.js.map create mode 100644 includes/external/addressbook/node_modules/domutils/lib/esm/traversal.d.ts create mode 100644 includes/external/addressbook/node_modules/domutils/lib/esm/traversal.d.ts.map create mode 100644 includes/external/addressbook/node_modules/domutils/lib/esm/traversal.js create mode 100644 includes/external/addressbook/node_modules/domutils/lib/esm/traversal.js.map create mode 100644 includes/external/addressbook/node_modules/domutils/lib/feeds.d.ts create mode 100644 includes/external/addressbook/node_modules/domutils/lib/feeds.d.ts.map create mode 100644 includes/external/addressbook/node_modules/domutils/lib/feeds.js create mode 100644 includes/external/addressbook/node_modules/domutils/lib/feeds.js.map create mode 100644 includes/external/addressbook/node_modules/domutils/lib/helpers.d.ts create mode 100644 includes/external/addressbook/node_modules/domutils/lib/helpers.d.ts.map create mode 100644 includes/external/addressbook/node_modules/domutils/lib/helpers.js create mode 100644 includes/external/addressbook/node_modules/domutils/lib/helpers.js.map create mode 100644 includes/external/addressbook/node_modules/domutils/lib/index.d.ts create mode 100644 includes/external/addressbook/node_modules/domutils/lib/index.d.ts.map create mode 100644 includes/external/addressbook/node_modules/domutils/lib/index.js create mode 100644 includes/external/addressbook/node_modules/domutils/lib/index.js.map create mode 100644 includes/external/addressbook/node_modules/domutils/lib/legacy.d.ts create mode 100644 includes/external/addressbook/node_modules/domutils/lib/legacy.d.ts.map create mode 100644 includes/external/addressbook/node_modules/domutils/lib/legacy.js create mode 100644 includes/external/addressbook/node_modules/domutils/lib/legacy.js.map create mode 100644 includes/external/addressbook/node_modules/domutils/lib/manipulation.d.ts create mode 100644 includes/external/addressbook/node_modules/domutils/lib/manipulation.d.ts.map create mode 100644 includes/external/addressbook/node_modules/domutils/lib/manipulation.js create mode 100644 includes/external/addressbook/node_modules/domutils/lib/manipulation.js.map create mode 100644 includes/external/addressbook/node_modules/domutils/lib/querying.d.ts create mode 100644 includes/external/addressbook/node_modules/domutils/lib/querying.d.ts.map create mode 100644 includes/external/addressbook/node_modules/domutils/lib/querying.js create mode 100644 includes/external/addressbook/node_modules/domutils/lib/querying.js.map create mode 100644 includes/external/addressbook/node_modules/domutils/lib/stringify.d.ts create mode 100644 includes/external/addressbook/node_modules/domutils/lib/stringify.d.ts.map create mode 100644 includes/external/addressbook/node_modules/domutils/lib/stringify.js create mode 100644 includes/external/addressbook/node_modules/domutils/lib/stringify.js.map create mode 100644 includes/external/addressbook/node_modules/domutils/lib/traversal.d.ts create mode 100644 includes/external/addressbook/node_modules/domutils/lib/traversal.d.ts.map create mode 100644 includes/external/addressbook/node_modules/domutils/lib/traversal.js create mode 100644 includes/external/addressbook/node_modules/domutils/lib/traversal.js.map create mode 100644 includes/external/addressbook/node_modules/domutils/package.json create mode 100644 includes/external/addressbook/node_modules/domutils/readme.md create mode 100644 includes/external/addressbook/node_modules/entities/LICENSE create mode 100644 includes/external/addressbook/node_modules/entities/lib/decode.d.ts create mode 100644 includes/external/addressbook/node_modules/entities/lib/decode.d.ts.map create mode 100644 includes/external/addressbook/node_modules/entities/lib/decode.js create mode 100644 includes/external/addressbook/node_modules/entities/lib/decode.js.map create mode 100644 includes/external/addressbook/node_modules/entities/lib/decode_codepoint.d.ts create mode 100644 includes/external/addressbook/node_modules/entities/lib/decode_codepoint.d.ts.map create mode 100644 includes/external/addressbook/node_modules/entities/lib/decode_codepoint.js create mode 100644 includes/external/addressbook/node_modules/entities/lib/decode_codepoint.js.map create mode 100644 includes/external/addressbook/node_modules/entities/lib/encode.d.ts create mode 100644 includes/external/addressbook/node_modules/entities/lib/encode.d.ts.map create mode 100644 includes/external/addressbook/node_modules/entities/lib/encode.js create mode 100644 includes/external/addressbook/node_modules/entities/lib/encode.js.map create mode 100644 includes/external/addressbook/node_modules/entities/lib/escape.d.ts create mode 100644 includes/external/addressbook/node_modules/entities/lib/escape.d.ts.map create mode 100644 includes/external/addressbook/node_modules/entities/lib/escape.js create mode 100644 includes/external/addressbook/node_modules/entities/lib/escape.js.map create mode 100644 includes/external/addressbook/node_modules/entities/lib/esm/decode.d.ts create mode 100644 includes/external/addressbook/node_modules/entities/lib/esm/decode.d.ts.map create mode 100644 includes/external/addressbook/node_modules/entities/lib/esm/decode.js create mode 100644 includes/external/addressbook/node_modules/entities/lib/esm/decode.js.map create mode 100644 includes/external/addressbook/node_modules/entities/lib/esm/decode_codepoint.d.ts create mode 100644 includes/external/addressbook/node_modules/entities/lib/esm/decode_codepoint.d.ts.map create mode 100644 includes/external/addressbook/node_modules/entities/lib/esm/decode_codepoint.js create mode 100644 includes/external/addressbook/node_modules/entities/lib/esm/decode_codepoint.js.map create mode 100644 includes/external/addressbook/node_modules/entities/lib/esm/encode.d.ts create mode 100644 includes/external/addressbook/node_modules/entities/lib/esm/encode.d.ts.map create mode 100644 includes/external/addressbook/node_modules/entities/lib/esm/encode.js create mode 100644 includes/external/addressbook/node_modules/entities/lib/esm/encode.js.map create mode 100644 includes/external/addressbook/node_modules/entities/lib/esm/escape.d.ts create mode 100644 includes/external/addressbook/node_modules/entities/lib/esm/escape.d.ts.map create mode 100644 includes/external/addressbook/node_modules/entities/lib/esm/escape.js create mode 100644 includes/external/addressbook/node_modules/entities/lib/esm/escape.js.map create mode 100644 includes/external/addressbook/node_modules/entities/lib/esm/generated/decode-data-html.d.ts create mode 100644 includes/external/addressbook/node_modules/entities/lib/esm/generated/decode-data-html.d.ts.map create mode 100644 includes/external/addressbook/node_modules/entities/lib/esm/generated/decode-data-html.js create mode 100644 includes/external/addressbook/node_modules/entities/lib/esm/generated/decode-data-html.js.map create mode 100644 includes/external/addressbook/node_modules/entities/lib/esm/generated/decode-data-xml.d.ts create mode 100644 includes/external/addressbook/node_modules/entities/lib/esm/generated/decode-data-xml.d.ts.map create mode 100644 includes/external/addressbook/node_modules/entities/lib/esm/generated/decode-data-xml.js create mode 100644 includes/external/addressbook/node_modules/entities/lib/esm/generated/decode-data-xml.js.map create mode 100644 includes/external/addressbook/node_modules/entities/lib/esm/generated/encode-html.d.ts create mode 100644 includes/external/addressbook/node_modules/entities/lib/esm/generated/encode-html.d.ts.map create mode 100644 includes/external/addressbook/node_modules/entities/lib/esm/generated/encode-html.js create mode 100644 includes/external/addressbook/node_modules/entities/lib/esm/generated/encode-html.js.map create mode 100644 includes/external/addressbook/node_modules/entities/lib/esm/index.d.ts create mode 100644 includes/external/addressbook/node_modules/entities/lib/esm/index.d.ts.map create mode 100644 includes/external/addressbook/node_modules/entities/lib/esm/index.js create mode 100644 includes/external/addressbook/node_modules/entities/lib/esm/index.js.map create mode 100644 includes/external/addressbook/node_modules/entities/lib/esm/package.json create mode 100644 includes/external/addressbook/node_modules/entities/lib/generated/decode-data-html.d.ts create mode 100644 includes/external/addressbook/node_modules/entities/lib/generated/decode-data-html.d.ts.map create mode 100644 includes/external/addressbook/node_modules/entities/lib/generated/decode-data-html.js create mode 100644 includes/external/addressbook/node_modules/entities/lib/generated/decode-data-html.js.map create mode 100644 includes/external/addressbook/node_modules/entities/lib/generated/decode-data-xml.d.ts create mode 100644 includes/external/addressbook/node_modules/entities/lib/generated/decode-data-xml.d.ts.map create mode 100644 includes/external/addressbook/node_modules/entities/lib/generated/decode-data-xml.js create mode 100644 includes/external/addressbook/node_modules/entities/lib/generated/decode-data-xml.js.map create mode 100644 includes/external/addressbook/node_modules/entities/lib/generated/encode-html.d.ts create mode 100644 includes/external/addressbook/node_modules/entities/lib/generated/encode-html.d.ts.map create mode 100644 includes/external/addressbook/node_modules/entities/lib/generated/encode-html.js create mode 100644 includes/external/addressbook/node_modules/entities/lib/generated/encode-html.js.map create mode 100644 includes/external/addressbook/node_modules/entities/lib/index.d.ts create mode 100644 includes/external/addressbook/node_modules/entities/lib/index.d.ts.map create mode 100644 includes/external/addressbook/node_modules/entities/lib/index.js create mode 100644 includes/external/addressbook/node_modules/entities/lib/index.js.map create mode 100644 includes/external/addressbook/node_modules/entities/package.json create mode 100644 includes/external/addressbook/node_modules/entities/readme.md create mode 100644 includes/external/addressbook/node_modules/form-data-encoder/@type/FileLike.d.ts create mode 100644 includes/external/addressbook/node_modules/form-data-encoder/@type/FormDataEncoder.d.ts create mode 100644 includes/external/addressbook/node_modules/form-data-encoder/@type/FormDataLike.d.ts create mode 100644 includes/external/addressbook/node_modules/form-data-encoder/@type/index.d.ts create mode 100644 includes/external/addressbook/node_modules/form-data-encoder/@type/util/Headers.d.ts create mode 100644 includes/external/addressbook/node_modules/form-data-encoder/@type/util/createBoundary.d.ts create mode 100644 includes/external/addressbook/node_modules/form-data-encoder/@type/util/escapeName.d.ts create mode 100644 includes/external/addressbook/node_modules/form-data-encoder/@type/util/getStreamIterator.d.ts create mode 100644 includes/external/addressbook/node_modules/form-data-encoder/@type/util/isFile.d.ts create mode 100644 includes/external/addressbook/node_modules/form-data-encoder/@type/util/isFormData.d.ts create mode 100644 includes/external/addressbook/node_modules/form-data-encoder/@type/util/isFunction.d.ts create mode 100644 includes/external/addressbook/node_modules/form-data-encoder/@type/util/isPlainObject.d.ts create mode 100644 includes/external/addressbook/node_modules/form-data-encoder/@type/util/normalizeValue.d.ts create mode 100644 includes/external/addressbook/node_modules/form-data-encoder/@type/util/proxyHeaders.d.ts create mode 100644 includes/external/addressbook/node_modules/form-data-encoder/lib/FileLike.js create mode 100644 includes/external/addressbook/node_modules/form-data-encoder/lib/FormDataEncoder.js create mode 100644 includes/external/addressbook/node_modules/form-data-encoder/lib/FormDataLike.js create mode 100644 includes/external/addressbook/node_modules/form-data-encoder/lib/index.js create mode 100644 includes/external/addressbook/node_modules/form-data-encoder/lib/util/Headers.js create mode 100644 includes/external/addressbook/node_modules/form-data-encoder/lib/util/createBoundary.js create mode 100644 includes/external/addressbook/node_modules/form-data-encoder/lib/util/escapeName.js create mode 100644 includes/external/addressbook/node_modules/form-data-encoder/lib/util/getStreamIterator.js create mode 100644 includes/external/addressbook/node_modules/form-data-encoder/lib/util/isFile.js create mode 100644 includes/external/addressbook/node_modules/form-data-encoder/lib/util/isFormData.js create mode 100644 includes/external/addressbook/node_modules/form-data-encoder/lib/util/isFunction.js create mode 100644 includes/external/addressbook/node_modules/form-data-encoder/lib/util/isPlainObject.js create mode 100644 includes/external/addressbook/node_modules/form-data-encoder/lib/util/normalizeValue.js create mode 100644 includes/external/addressbook/node_modules/form-data-encoder/lib/util/proxyHeaders.js create mode 100644 includes/external/addressbook/node_modules/form-data-encoder/license create mode 100644 includes/external/addressbook/node_modules/form-data-encoder/package.json create mode 100644 includes/external/addressbook/node_modules/form-data-encoder/readme.md create mode 100644 includes/external/addressbook/node_modules/get-stream/buffer-stream.js create mode 100644 includes/external/addressbook/node_modules/get-stream/index.d.ts create mode 100644 includes/external/addressbook/node_modules/get-stream/index.js create mode 100644 includes/external/addressbook/node_modules/get-stream/license create mode 100644 includes/external/addressbook/node_modules/get-stream/package.json create mode 100644 includes/external/addressbook/node_modules/get-stream/readme.md create mode 100644 includes/external/addressbook/node_modules/got/dist/source/as-promise/index.d.ts create mode 100644 includes/external/addressbook/node_modules/got/dist/source/as-promise/index.js create mode 100644 includes/external/addressbook/node_modules/got/dist/source/as-promise/types.d.ts create mode 100644 includes/external/addressbook/node_modules/got/dist/source/as-promise/types.js create mode 100644 includes/external/addressbook/node_modules/got/dist/source/core/calculate-retry-delay.d.ts create mode 100644 includes/external/addressbook/node_modules/got/dist/source/core/calculate-retry-delay.js create mode 100644 includes/external/addressbook/node_modules/got/dist/source/core/errors.d.ts create mode 100644 includes/external/addressbook/node_modules/got/dist/source/core/errors.js create mode 100644 includes/external/addressbook/node_modules/got/dist/source/core/index.d.ts create mode 100644 includes/external/addressbook/node_modules/got/dist/source/core/index.js create mode 100644 includes/external/addressbook/node_modules/got/dist/source/core/options.d.ts create mode 100644 includes/external/addressbook/node_modules/got/dist/source/core/options.js create mode 100644 includes/external/addressbook/node_modules/got/dist/source/core/parse-link-header.d.ts create mode 100644 includes/external/addressbook/node_modules/got/dist/source/core/parse-link-header.js create mode 100644 includes/external/addressbook/node_modules/got/dist/source/core/response.d.ts create mode 100644 includes/external/addressbook/node_modules/got/dist/source/core/response.js create mode 100644 includes/external/addressbook/node_modules/got/dist/source/core/timed-out.d.ts create mode 100644 includes/external/addressbook/node_modules/got/dist/source/core/timed-out.js create mode 100644 includes/external/addressbook/node_modules/got/dist/source/core/utils/get-body-size.d.ts create mode 100644 includes/external/addressbook/node_modules/got/dist/source/core/utils/get-body-size.js create mode 100644 includes/external/addressbook/node_modules/got/dist/source/core/utils/is-client-request.d.ts create mode 100644 includes/external/addressbook/node_modules/got/dist/source/core/utils/is-client-request.js create mode 100644 includes/external/addressbook/node_modules/got/dist/source/core/utils/is-form-data.d.ts create mode 100644 includes/external/addressbook/node_modules/got/dist/source/core/utils/is-form-data.js create mode 100644 includes/external/addressbook/node_modules/got/dist/source/core/utils/is-unix-socket-url.d.ts create mode 100644 includes/external/addressbook/node_modules/got/dist/source/core/utils/is-unix-socket-url.js create mode 100644 includes/external/addressbook/node_modules/got/dist/source/core/utils/options-to-url.d.ts create mode 100644 includes/external/addressbook/node_modules/got/dist/source/core/utils/options-to-url.js create mode 100644 includes/external/addressbook/node_modules/got/dist/source/core/utils/proxy-events.d.ts create mode 100644 includes/external/addressbook/node_modules/got/dist/source/core/utils/proxy-events.js create mode 100644 includes/external/addressbook/node_modules/got/dist/source/core/utils/unhandle.d.ts create mode 100644 includes/external/addressbook/node_modules/got/dist/source/core/utils/unhandle.js create mode 100644 includes/external/addressbook/node_modules/got/dist/source/core/utils/url-to-options.d.ts create mode 100644 includes/external/addressbook/node_modules/got/dist/source/core/utils/url-to-options.js create mode 100644 includes/external/addressbook/node_modules/got/dist/source/core/utils/weakable-map.d.ts create mode 100644 includes/external/addressbook/node_modules/got/dist/source/core/utils/weakable-map.js create mode 100644 includes/external/addressbook/node_modules/got/dist/source/create.d.ts create mode 100644 includes/external/addressbook/node_modules/got/dist/source/create.js create mode 100644 includes/external/addressbook/node_modules/got/dist/source/index.d.ts create mode 100644 includes/external/addressbook/node_modules/got/dist/source/index.js create mode 100644 includes/external/addressbook/node_modules/got/dist/source/types.d.ts create mode 100644 includes/external/addressbook/node_modules/got/dist/source/types.js create mode 100644 includes/external/addressbook/node_modules/got/license create mode 100644 includes/external/addressbook/node_modules/got/package.json create mode 100644 includes/external/addressbook/node_modules/got/readme.md create mode 100644 includes/external/addressbook/node_modules/htmlparser2/LICENSE create mode 100644 includes/external/addressbook/node_modules/htmlparser2/README.md create mode 100644 includes/external/addressbook/node_modules/htmlparser2/lib/Parser.d.ts create mode 100644 includes/external/addressbook/node_modules/htmlparser2/lib/Parser.d.ts.map create mode 100644 includes/external/addressbook/node_modules/htmlparser2/lib/Parser.js create mode 100644 includes/external/addressbook/node_modules/htmlparser2/lib/Parser.js.map create mode 100644 includes/external/addressbook/node_modules/htmlparser2/lib/Tokenizer.d.ts create mode 100644 includes/external/addressbook/node_modules/htmlparser2/lib/Tokenizer.d.ts.map create mode 100644 includes/external/addressbook/node_modules/htmlparser2/lib/Tokenizer.js create mode 100644 includes/external/addressbook/node_modules/htmlparser2/lib/Tokenizer.js.map create mode 100644 includes/external/addressbook/node_modules/htmlparser2/lib/WritableStream.d.ts create mode 100644 includes/external/addressbook/node_modules/htmlparser2/lib/WritableStream.d.ts.map create mode 100644 includes/external/addressbook/node_modules/htmlparser2/lib/WritableStream.js create mode 100644 includes/external/addressbook/node_modules/htmlparser2/lib/WritableStream.js.map create mode 100644 includes/external/addressbook/node_modules/htmlparser2/lib/esm/Parser.d.ts create mode 100644 includes/external/addressbook/node_modules/htmlparser2/lib/esm/Parser.d.ts.map create mode 100644 includes/external/addressbook/node_modules/htmlparser2/lib/esm/Parser.js create mode 100644 includes/external/addressbook/node_modules/htmlparser2/lib/esm/Parser.js.map create mode 100644 includes/external/addressbook/node_modules/htmlparser2/lib/esm/Tokenizer.d.ts create mode 100644 includes/external/addressbook/node_modules/htmlparser2/lib/esm/Tokenizer.d.ts.map create mode 100644 includes/external/addressbook/node_modules/htmlparser2/lib/esm/Tokenizer.js create mode 100644 includes/external/addressbook/node_modules/htmlparser2/lib/esm/Tokenizer.js.map create mode 100644 includes/external/addressbook/node_modules/htmlparser2/lib/esm/WritableStream.d.ts create mode 100644 includes/external/addressbook/node_modules/htmlparser2/lib/esm/WritableStream.d.ts.map create mode 100644 includes/external/addressbook/node_modules/htmlparser2/lib/esm/WritableStream.js create mode 100644 includes/external/addressbook/node_modules/htmlparser2/lib/esm/WritableStream.js.map create mode 100644 includes/external/addressbook/node_modules/htmlparser2/lib/esm/index.d.ts create mode 100644 includes/external/addressbook/node_modules/htmlparser2/lib/esm/index.d.ts.map create mode 100644 includes/external/addressbook/node_modules/htmlparser2/lib/esm/index.js create mode 100644 includes/external/addressbook/node_modules/htmlparser2/lib/esm/index.js.map create mode 100644 includes/external/addressbook/node_modules/htmlparser2/lib/esm/package.json create mode 100644 includes/external/addressbook/node_modules/htmlparser2/lib/index.d.ts create mode 100644 includes/external/addressbook/node_modules/htmlparser2/lib/index.d.ts.map create mode 100644 includes/external/addressbook/node_modules/htmlparser2/lib/index.js create mode 100644 includes/external/addressbook/node_modules/htmlparser2/lib/index.js.map create mode 100644 includes/external/addressbook/node_modules/htmlparser2/package.json create mode 100644 includes/external/addressbook/node_modules/http-cache-semantics/LICENSE create mode 100644 includes/external/addressbook/node_modules/http-cache-semantics/README.md create mode 100644 includes/external/addressbook/node_modules/http-cache-semantics/index.js create mode 100644 includes/external/addressbook/node_modules/http-cache-semantics/package.json create mode 100644 includes/external/addressbook/node_modules/http2-wrapper/LICENSE create mode 100644 includes/external/addressbook/node_modules/http2-wrapper/README.md create mode 100644 includes/external/addressbook/node_modules/http2-wrapper/index.d.ts create mode 100644 includes/external/addressbook/node_modules/http2-wrapper/package.json create mode 100644 includes/external/addressbook/node_modules/http2-wrapper/source/agent.js create mode 100644 includes/external/addressbook/node_modules/http2-wrapper/source/auto.js create mode 100644 includes/external/addressbook/node_modules/http2-wrapper/source/client-request.js create mode 100644 includes/external/addressbook/node_modules/http2-wrapper/source/incoming-message.js create mode 100644 includes/external/addressbook/node_modules/http2-wrapper/source/index.js create mode 100644 includes/external/addressbook/node_modules/http2-wrapper/source/proxies/get-auth-headers.js create mode 100644 includes/external/addressbook/node_modules/http2-wrapper/source/proxies/h1-over-h2.js create mode 100644 includes/external/addressbook/node_modules/http2-wrapper/source/proxies/h2-over-h1.js create mode 100644 includes/external/addressbook/node_modules/http2-wrapper/source/proxies/h2-over-h2.js create mode 100644 includes/external/addressbook/node_modules/http2-wrapper/source/proxies/h2-over-hx.js create mode 100644 includes/external/addressbook/node_modules/http2-wrapper/source/proxies/initialize.js create mode 100644 includes/external/addressbook/node_modules/http2-wrapper/source/proxies/unexpected-status-code-error.js create mode 100644 includes/external/addressbook/node_modules/http2-wrapper/source/utils/calculate-server-name.js create mode 100644 includes/external/addressbook/node_modules/http2-wrapper/source/utils/check-type.js create mode 100644 includes/external/addressbook/node_modules/http2-wrapper/source/utils/delay-async-destroy.js create mode 100644 includes/external/addressbook/node_modules/http2-wrapper/source/utils/errors.js create mode 100644 includes/external/addressbook/node_modules/http2-wrapper/source/utils/is-request-pseudo-header.js create mode 100644 includes/external/addressbook/node_modules/http2-wrapper/source/utils/js-stream-socket.js create mode 100644 includes/external/addressbook/node_modules/http2-wrapper/source/utils/proxy-events.js create mode 100644 includes/external/addressbook/node_modules/http2-wrapper/source/utils/proxy-socket-handler.js create mode 100644 includes/external/addressbook/node_modules/http2-wrapper/source/utils/validate-header-name.js create mode 100644 includes/external/addressbook/node_modules/http2-wrapper/source/utils/validate-header-value.js create mode 100644 includes/external/addressbook/node_modules/iconv-lite/.github/dependabot.yml create mode 100644 includes/external/addressbook/node_modules/iconv-lite/.idea/codeStyles/Project.xml create mode 100644 includes/external/addressbook/node_modules/iconv-lite/.idea/codeStyles/codeStyleConfig.xml create mode 100644 includes/external/addressbook/node_modules/iconv-lite/.idea/iconv-lite.iml create mode 100644 includes/external/addressbook/node_modules/iconv-lite/.idea/inspectionProfiles/Project_Default.xml create mode 100644 includes/external/addressbook/node_modules/iconv-lite/.idea/modules.xml create mode 100644 includes/external/addressbook/node_modules/iconv-lite/.idea/vcs.xml create mode 100644 includes/external/addressbook/node_modules/iconv-lite/Changelog.md create mode 100644 includes/external/addressbook/node_modules/iconv-lite/LICENSE create mode 100644 includes/external/addressbook/node_modules/iconv-lite/README.md create mode 100644 includes/external/addressbook/node_modules/iconv-lite/encodings/dbcs-codec.js create mode 100644 includes/external/addressbook/node_modules/iconv-lite/encodings/dbcs-data.js create mode 100644 includes/external/addressbook/node_modules/iconv-lite/encodings/index.js create mode 100644 includes/external/addressbook/node_modules/iconv-lite/encodings/internal.js create mode 100644 includes/external/addressbook/node_modules/iconv-lite/encodings/sbcs-codec.js create mode 100644 includes/external/addressbook/node_modules/iconv-lite/encodings/sbcs-data-generated.js create mode 100644 includes/external/addressbook/node_modules/iconv-lite/encodings/sbcs-data.js create mode 100644 includes/external/addressbook/node_modules/iconv-lite/encodings/tables/big5-added.json create mode 100644 includes/external/addressbook/node_modules/iconv-lite/encodings/tables/cp936.json create mode 100644 includes/external/addressbook/node_modules/iconv-lite/encodings/tables/cp949.json create mode 100644 includes/external/addressbook/node_modules/iconv-lite/encodings/tables/cp950.json create mode 100644 includes/external/addressbook/node_modules/iconv-lite/encodings/tables/eucjp.json create mode 100644 includes/external/addressbook/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json create mode 100644 includes/external/addressbook/node_modules/iconv-lite/encodings/tables/gbk-added.json create mode 100644 includes/external/addressbook/node_modules/iconv-lite/encodings/tables/shiftjis.json create mode 100644 includes/external/addressbook/node_modules/iconv-lite/encodings/utf16.js create mode 100644 includes/external/addressbook/node_modules/iconv-lite/encodings/utf32.js create mode 100644 includes/external/addressbook/node_modules/iconv-lite/encodings/utf7.js create mode 100644 includes/external/addressbook/node_modules/iconv-lite/lib/bom-handling.js create mode 100644 includes/external/addressbook/node_modules/iconv-lite/lib/index.d.ts create mode 100644 includes/external/addressbook/node_modules/iconv-lite/lib/index.js create mode 100644 includes/external/addressbook/node_modules/iconv-lite/lib/streams.js create mode 100644 includes/external/addressbook/node_modules/iconv-lite/package.json create mode 100644 includes/external/addressbook/node_modules/json-buffer/.travis.yml create mode 100644 includes/external/addressbook/node_modules/json-buffer/LICENSE create mode 100644 includes/external/addressbook/node_modules/json-buffer/README.md create mode 100644 includes/external/addressbook/node_modules/json-buffer/index.js create mode 100644 includes/external/addressbook/node_modules/json-buffer/package.json create mode 100644 includes/external/addressbook/node_modules/json-buffer/test/index.js create mode 100644 includes/external/addressbook/node_modules/keyv/README.md create mode 100644 includes/external/addressbook/node_modules/keyv/package.json create mode 100644 includes/external/addressbook/node_modules/keyv/src/index.d.ts create mode 100644 includes/external/addressbook/node_modules/keyv/src/index.js create mode 100644 includes/external/addressbook/node_modules/lowercase-keys/index.d.ts create mode 100644 includes/external/addressbook/node_modules/lowercase-keys/index.js create mode 100644 includes/external/addressbook/node_modules/lowercase-keys/license create mode 100644 includes/external/addressbook/node_modules/lowercase-keys/package.json create mode 100644 includes/external/addressbook/node_modules/lowercase-keys/readme.md create mode 100644 includes/external/addressbook/node_modules/mimic-response/index.d.ts create mode 100644 includes/external/addressbook/node_modules/mimic-response/index.js create mode 100644 includes/external/addressbook/node_modules/mimic-response/license create mode 100644 includes/external/addressbook/node_modules/mimic-response/package.json create mode 100644 includes/external/addressbook/node_modules/mimic-response/readme.md create mode 100644 includes/external/addressbook/node_modules/normalize-url/index.d.ts create mode 100644 includes/external/addressbook/node_modules/normalize-url/index.js create mode 100644 includes/external/addressbook/node_modules/normalize-url/license create mode 100644 includes/external/addressbook/node_modules/normalize-url/package.json create mode 100644 includes/external/addressbook/node_modules/normalize-url/readme.md create mode 100644 includes/external/addressbook/node_modules/nth-check/LICENSE create mode 100644 includes/external/addressbook/node_modules/nth-check/README.md create mode 100644 includes/external/addressbook/node_modules/nth-check/lib/compile.d.ts create mode 100644 includes/external/addressbook/node_modules/nth-check/lib/compile.d.ts.map create mode 100644 includes/external/addressbook/node_modules/nth-check/lib/compile.js create mode 100644 includes/external/addressbook/node_modules/nth-check/lib/compile.js.map create mode 100644 includes/external/addressbook/node_modules/nth-check/lib/esm/compile.d.ts create mode 100644 includes/external/addressbook/node_modules/nth-check/lib/esm/compile.d.ts.map create mode 100644 includes/external/addressbook/node_modules/nth-check/lib/esm/compile.js create mode 100644 includes/external/addressbook/node_modules/nth-check/lib/esm/compile.js.map create mode 100644 includes/external/addressbook/node_modules/nth-check/lib/esm/index.d.ts create mode 100644 includes/external/addressbook/node_modules/nth-check/lib/esm/index.d.ts.map create mode 100644 includes/external/addressbook/node_modules/nth-check/lib/esm/index.js create mode 100644 includes/external/addressbook/node_modules/nth-check/lib/esm/index.js.map create mode 100644 includes/external/addressbook/node_modules/nth-check/lib/esm/package.json create mode 100644 includes/external/addressbook/node_modules/nth-check/lib/esm/parse.d.ts create mode 100644 includes/external/addressbook/node_modules/nth-check/lib/esm/parse.d.ts.map create mode 100644 includes/external/addressbook/node_modules/nth-check/lib/esm/parse.js create mode 100644 includes/external/addressbook/node_modules/nth-check/lib/esm/parse.js.map create mode 100644 includes/external/addressbook/node_modules/nth-check/lib/index.d.ts create mode 100644 includes/external/addressbook/node_modules/nth-check/lib/index.d.ts.map create mode 100644 includes/external/addressbook/node_modules/nth-check/lib/index.js create mode 100644 includes/external/addressbook/node_modules/nth-check/lib/index.js.map create mode 100644 includes/external/addressbook/node_modules/nth-check/lib/parse.d.ts create mode 100644 includes/external/addressbook/node_modules/nth-check/lib/parse.d.ts.map create mode 100644 includes/external/addressbook/node_modules/nth-check/lib/parse.js create mode 100644 includes/external/addressbook/node_modules/nth-check/lib/parse.js.map create mode 100644 includes/external/addressbook/node_modules/nth-check/package.json create mode 100644 includes/external/addressbook/node_modules/open-graph-scraper/CHANGELOG.md create mode 100644 includes/external/addressbook/node_modules/open-graph-scraper/LICENSE create mode 100644 includes/external/addressbook/node_modules/open-graph-scraper/README.md create mode 100644 includes/external/addressbook/node_modules/open-graph-scraper/dist/index.d.ts create mode 100644 includes/external/addressbook/node_modules/open-graph-scraper/dist/index.js create mode 100644 includes/external/addressbook/node_modules/open-graph-scraper/dist/lib/extract.d.ts create mode 100644 includes/external/addressbook/node_modules/open-graph-scraper/dist/lib/extract.js create mode 100644 includes/external/addressbook/node_modules/open-graph-scraper/dist/lib/fallback.d.ts create mode 100644 includes/external/addressbook/node_modules/open-graph-scraper/dist/lib/fallback.js create mode 100644 includes/external/addressbook/node_modules/open-graph-scraper/dist/lib/fields.d.ts create mode 100644 includes/external/addressbook/node_modules/open-graph-scraper/dist/lib/fields.js create mode 100644 includes/external/addressbook/node_modules/open-graph-scraper/dist/lib/media.d.ts create mode 100644 includes/external/addressbook/node_modules/open-graph-scraper/dist/lib/media.js create mode 100644 includes/external/addressbook/node_modules/open-graph-scraper/dist/lib/openGraphScraper.d.ts create mode 100644 includes/external/addressbook/node_modules/open-graph-scraper/dist/lib/openGraphScraper.js create mode 100644 includes/external/addressbook/node_modules/open-graph-scraper/dist/lib/request.d.ts create mode 100644 includes/external/addressbook/node_modules/open-graph-scraper/dist/lib/request.js create mode 100644 includes/external/addressbook/node_modules/open-graph-scraper/dist/lib/types.d.ts create mode 100644 includes/external/addressbook/node_modules/open-graph-scraper/dist/lib/types.js create mode 100644 includes/external/addressbook/node_modules/open-graph-scraper/dist/lib/utils.d.ts create mode 100644 includes/external/addressbook/node_modules/open-graph-scraper/dist/lib/utils.js create mode 100644 includes/external/addressbook/node_modules/open-graph-scraper/index.ts create mode 100644 includes/external/addressbook/node_modules/open-graph-scraper/package.json create mode 100644 includes/external/addressbook/node_modules/p-cancelable/index.d.ts create mode 100644 includes/external/addressbook/node_modules/p-cancelable/index.js create mode 100644 includes/external/addressbook/node_modules/p-cancelable/license create mode 100644 includes/external/addressbook/node_modules/p-cancelable/package.json create mode 100644 includes/external/addressbook/node_modules/p-cancelable/readme.md create mode 100644 includes/external/addressbook/node_modules/parse5-htmlparser2-tree-adapter/LICENSE create mode 100644 includes/external/addressbook/node_modules/parse5-htmlparser2-tree-adapter/README.md create mode 100644 includes/external/addressbook/node_modules/parse5-htmlparser2-tree-adapter/dist/cjs/index.d.ts create mode 100644 includes/external/addressbook/node_modules/parse5-htmlparser2-tree-adapter/dist/cjs/index.js create mode 100644 includes/external/addressbook/node_modules/parse5-htmlparser2-tree-adapter/dist/cjs/package.json create mode 100644 includes/external/addressbook/node_modules/parse5-htmlparser2-tree-adapter/dist/index.d.ts create mode 100644 includes/external/addressbook/node_modules/parse5-htmlparser2-tree-adapter/dist/index.js create mode 100644 includes/external/addressbook/node_modules/parse5-htmlparser2-tree-adapter/package.json create mode 100644 includes/external/addressbook/node_modules/parse5/LICENSE create mode 100644 includes/external/addressbook/node_modules/parse5/README.md create mode 100644 includes/external/addressbook/node_modules/parse5/dist/cjs/common/doctype.d.ts create mode 100644 includes/external/addressbook/node_modules/parse5/dist/cjs/common/doctype.js create mode 100644 includes/external/addressbook/node_modules/parse5/dist/cjs/common/error-codes.d.ts create mode 100644 includes/external/addressbook/node_modules/parse5/dist/cjs/common/error-codes.js create mode 100644 includes/external/addressbook/node_modules/parse5/dist/cjs/common/foreign-content.d.ts create mode 100644 includes/external/addressbook/node_modules/parse5/dist/cjs/common/foreign-content.js create mode 100644 includes/external/addressbook/node_modules/parse5/dist/cjs/common/html.d.ts create mode 100644 includes/external/addressbook/node_modules/parse5/dist/cjs/common/html.js create mode 100644 includes/external/addressbook/node_modules/parse5/dist/cjs/common/token.d.ts create mode 100644 includes/external/addressbook/node_modules/parse5/dist/cjs/common/token.js create mode 100644 includes/external/addressbook/node_modules/parse5/dist/cjs/common/unicode.d.ts create mode 100644 includes/external/addressbook/node_modules/parse5/dist/cjs/common/unicode.js create mode 100644 includes/external/addressbook/node_modules/parse5/dist/cjs/index.d.ts create mode 100644 includes/external/addressbook/node_modules/parse5/dist/cjs/index.js create mode 100644 includes/external/addressbook/node_modules/parse5/dist/cjs/package.json create mode 100644 includes/external/addressbook/node_modules/parse5/dist/cjs/parser/formatting-element-list.d.ts create mode 100644 includes/external/addressbook/node_modules/parse5/dist/cjs/parser/formatting-element-list.js create mode 100644 includes/external/addressbook/node_modules/parse5/dist/cjs/parser/index.d.ts create mode 100644 includes/external/addressbook/node_modules/parse5/dist/cjs/parser/index.js create mode 100644 includes/external/addressbook/node_modules/parse5/dist/cjs/parser/open-element-stack.d.ts create mode 100644 includes/external/addressbook/node_modules/parse5/dist/cjs/parser/open-element-stack.js create mode 100644 includes/external/addressbook/node_modules/parse5/dist/cjs/serializer/index.d.ts create mode 100644 includes/external/addressbook/node_modules/parse5/dist/cjs/serializer/index.js create mode 100644 includes/external/addressbook/node_modules/parse5/dist/cjs/tokenizer/index.d.ts create mode 100644 includes/external/addressbook/node_modules/parse5/dist/cjs/tokenizer/index.js create mode 100644 includes/external/addressbook/node_modules/parse5/dist/cjs/tokenizer/preprocessor.d.ts create mode 100644 includes/external/addressbook/node_modules/parse5/dist/cjs/tokenizer/preprocessor.js create mode 100644 includes/external/addressbook/node_modules/parse5/dist/cjs/tree-adapters/default.d.ts create mode 100644 includes/external/addressbook/node_modules/parse5/dist/cjs/tree-adapters/default.js create mode 100644 includes/external/addressbook/node_modules/parse5/dist/cjs/tree-adapters/interface.d.ts create mode 100644 includes/external/addressbook/node_modules/parse5/dist/cjs/tree-adapters/interface.js create mode 100644 includes/external/addressbook/node_modules/parse5/dist/common/doctype.d.ts create mode 100644 includes/external/addressbook/node_modules/parse5/dist/common/doctype.js create mode 100644 includes/external/addressbook/node_modules/parse5/dist/common/error-codes.d.ts create mode 100644 includes/external/addressbook/node_modules/parse5/dist/common/error-codes.js create mode 100644 includes/external/addressbook/node_modules/parse5/dist/common/foreign-content.d.ts create mode 100644 includes/external/addressbook/node_modules/parse5/dist/common/foreign-content.js create mode 100644 includes/external/addressbook/node_modules/parse5/dist/common/html.d.ts create mode 100644 includes/external/addressbook/node_modules/parse5/dist/common/html.js create mode 100644 includes/external/addressbook/node_modules/parse5/dist/common/token.d.ts create mode 100644 includes/external/addressbook/node_modules/parse5/dist/common/token.js create mode 100644 includes/external/addressbook/node_modules/parse5/dist/common/unicode.d.ts create mode 100644 includes/external/addressbook/node_modules/parse5/dist/common/unicode.js create mode 100644 includes/external/addressbook/node_modules/parse5/dist/index.d.ts create mode 100644 includes/external/addressbook/node_modules/parse5/dist/index.js create mode 100644 includes/external/addressbook/node_modules/parse5/dist/parser/formatting-element-list.d.ts create mode 100644 includes/external/addressbook/node_modules/parse5/dist/parser/formatting-element-list.js create mode 100644 includes/external/addressbook/node_modules/parse5/dist/parser/index.d.ts create mode 100644 includes/external/addressbook/node_modules/parse5/dist/parser/index.js create mode 100644 includes/external/addressbook/node_modules/parse5/dist/parser/open-element-stack.d.ts create mode 100644 includes/external/addressbook/node_modules/parse5/dist/parser/open-element-stack.js create mode 100644 includes/external/addressbook/node_modules/parse5/dist/serializer/index.d.ts create mode 100644 includes/external/addressbook/node_modules/parse5/dist/serializer/index.js create mode 100644 includes/external/addressbook/node_modules/parse5/dist/tokenizer/index.d.ts create mode 100644 includes/external/addressbook/node_modules/parse5/dist/tokenizer/index.js create mode 100644 includes/external/addressbook/node_modules/parse5/dist/tokenizer/preprocessor.d.ts create mode 100644 includes/external/addressbook/node_modules/parse5/dist/tokenizer/preprocessor.js create mode 100644 includes/external/addressbook/node_modules/parse5/dist/tree-adapters/default.d.ts create mode 100644 includes/external/addressbook/node_modules/parse5/dist/tree-adapters/default.js create mode 100644 includes/external/addressbook/node_modules/parse5/dist/tree-adapters/interface.d.ts create mode 100644 includes/external/addressbook/node_modules/parse5/dist/tree-adapters/interface.js create mode 100644 includes/external/addressbook/node_modules/parse5/package.json create mode 100644 includes/external/addressbook/node_modules/quick-lru/index.d.ts create mode 100644 includes/external/addressbook/node_modules/quick-lru/index.js create mode 100644 includes/external/addressbook/node_modules/quick-lru/license create mode 100644 includes/external/addressbook/node_modules/quick-lru/package.json create mode 100644 includes/external/addressbook/node_modules/quick-lru/readme.md create mode 100644 includes/external/addressbook/node_modules/resolve-alpn/LICENSE create mode 100644 includes/external/addressbook/node_modules/resolve-alpn/README.md create mode 100644 includes/external/addressbook/node_modules/resolve-alpn/index.js create mode 100644 includes/external/addressbook/node_modules/resolve-alpn/package.json create mode 100644 includes/external/addressbook/node_modules/responselike/index.d.ts create mode 100644 includes/external/addressbook/node_modules/responselike/index.js create mode 100644 includes/external/addressbook/node_modules/responselike/license create mode 100644 includes/external/addressbook/node_modules/responselike/package.json create mode 100644 includes/external/addressbook/node_modules/responselike/readme.md create mode 100644 includes/external/addressbook/node_modules/safer-buffer/LICENSE create mode 100644 includes/external/addressbook/node_modules/safer-buffer/Porting-Buffer.md create mode 100644 includes/external/addressbook/node_modules/safer-buffer/Readme.md create mode 100644 includes/external/addressbook/node_modules/safer-buffer/dangerous.js create mode 100644 includes/external/addressbook/node_modules/safer-buffer/package.json create mode 100644 includes/external/addressbook/node_modules/safer-buffer/safer.js create mode 100644 includes/external/addressbook/node_modules/safer-buffer/tests.js create mode 100644 includes/external/addressbook/node_modules/validator/LICENSE create mode 100644 includes/external/addressbook/node_modules/validator/README.md create mode 100644 includes/external/addressbook/node_modules/validator/es/index.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/alpha.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/blacklist.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/contains.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/equals.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/escape.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isAfter.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isAlpha.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isAlphanumeric.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isAscii.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isBIC.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isBase32.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isBase58.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isBase64.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isBefore.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isBoolean.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isBtcAddress.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isByteLength.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isCreditCard.js create mode 100755 includes/external/addressbook/node_modules/validator/es/lib/isCurrency.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isDataURI.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isDate.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isDecimal.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isDivisibleBy.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isEAN.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isEmail.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isEmpty.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isEthereumAddress.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isFQDN.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isFloat.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isFullWidth.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isHSL.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isHalfWidth.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isHash.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isHexColor.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isHexadecimal.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isIBAN.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isIMEI.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isIP.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isIPRange.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isISBN.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isISIN.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isISO31661Alpha2.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isISO31661Alpha3.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isISO4217.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isISO6391.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isISO8601.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isISRC.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isISSN.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isIdentityCard.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isIn.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isInt.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isJSON.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isJWT.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isLatLong.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isLength.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isLicensePlate.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isLocale.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isLowercase.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isLuhnNumber.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isLuhnValid.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isMACAddress.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isMD5.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isMagnetURI.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isMimeType.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isMobilePhone.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isMongoId.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isMultibyte.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isNumeric.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isOctal.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isPassportNumber.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isPort.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isPostalCode.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isRFC3339.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isRgbColor.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isSemVer.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isSlug.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isStrongPassword.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isSurrogatePair.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isTaxID.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isTime.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isURL.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isUUID.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isUppercase.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isVAT.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isVariableWidth.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/isWhitelisted.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/ltrim.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/matches.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/normalizeEmail.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/rtrim.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/stripLow.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/toBoolean.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/toDate.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/toFloat.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/toInt.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/trim.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/unescape.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/util/algorithms.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/util/assertString.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/util/includes.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/util/merge.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/util/multilineRegex.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/util/toString.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/util/typeOf.js create mode 100644 includes/external/addressbook/node_modules/validator/es/lib/whitelist.js create mode 100644 includes/external/addressbook/node_modules/validator/index.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/alpha.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/blacklist.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/contains.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/equals.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/escape.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isAfter.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isAlpha.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isAlphanumeric.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isAscii.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isBIC.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isBase32.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isBase58.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isBase64.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isBefore.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isBoolean.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isBtcAddress.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isByteLength.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isCreditCard.js create mode 100755 includes/external/addressbook/node_modules/validator/lib/isCurrency.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isDataURI.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isDate.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isDecimal.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isDivisibleBy.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isEAN.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isEmail.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isEmpty.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isEthereumAddress.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isFQDN.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isFloat.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isFullWidth.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isHSL.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isHalfWidth.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isHash.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isHexColor.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isHexadecimal.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isIBAN.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isIMEI.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isIP.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isIPRange.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isISBN.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isISIN.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isISO31661Alpha2.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isISO31661Alpha3.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isISO4217.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isISO6391.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isISO8601.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isISRC.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isISSN.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isIdentityCard.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isIn.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isInt.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isJSON.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isJWT.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isLatLong.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isLength.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isLicensePlate.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isLocale.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isLowercase.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isLuhnNumber.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isLuhnValid.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isMACAddress.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isMD5.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isMagnetURI.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isMimeType.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isMobilePhone.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isMongoId.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isMultibyte.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isNumeric.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isOctal.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isPassportNumber.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isPort.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isPostalCode.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isRFC3339.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isRgbColor.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isSemVer.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isSlug.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isStrongPassword.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isSurrogatePair.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isTaxID.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isTime.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isURL.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isUUID.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isUppercase.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isVAT.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isVariableWidth.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/isWhitelisted.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/ltrim.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/matches.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/normalizeEmail.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/rtrim.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/stripLow.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/toBoolean.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/toDate.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/toFloat.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/toInt.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/trim.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/unescape.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/util/algorithms.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/util/assertString.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/util/includes.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/util/merge.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/util/multilineRegex.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/util/toString.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/util/typeOf.js create mode 100644 includes/external/addressbook/node_modules/validator/lib/whitelist.js create mode 100644 includes/external/addressbook/node_modules/validator/package.json create mode 100644 includes/external/addressbook/node_modules/validator/validator.js create mode 100644 includes/external/addressbook/node_modules/validator/validator.min.js create mode 100644 includes/external/addressbook/website.js (limited to 'includes/external') diff --git a/includes/external/addressbook/email.js b/includes/external/addressbook/email.js new file mode 100644 index 0000000..81abec3 --- /dev/null +++ b/includes/external/addressbook/email.js @@ -0,0 +1,175 @@ +const axios = require('axios'); +const protonMail = "web-mail@5.0.20.3"; +const app = require('../../app.json'); +const net = require('net'); + +function sleep(ms) { + return new Promise((res) => { + setTimeout(res, ms); + }); +} + +function checkGmail(user, type) { + return new Promise((res) => { + const client = net.createConnection(25, "gmail-smtp-in.l.google.com"); + let current = 0; + + client.on('data', (data) => { + let message = data.toString().trim(); + + if (message.startsWith("220 ")) { + client.write("helo equestria.dev\n"); + } else if (message.startsWith("250 ") && current === 0) { + current++; + client.write("mail from: \n"); + } else if (message.startsWith("250 ") && current === 1) { + current++; + client.write(`rcpt to: <${user}>\n`); + } else if (message.startsWith("250 ") && current === 2) { + client.write("quit\n"); + res("gmail"); + } else if (message.startsWith("550-") && current === 2) { + client.write("quit\n"); + res(type); + } + }); + + client.on('end', () => { + res(type); + }); + }); +} + +(async () => { + let user = process.argv[2]; + let type = "generic"; + + try { + let data = (await axios.get(`https://mail.proton.me/api/core/v4/keys?Email=${encodeURIComponent(user)}`, { + headers: { + Cookie: app.proton.cookie, + 'X-Pm-Appversion': protonMail, + 'X-Pm-Uid': app.proton.id + } + })).data; + + if (data['RecipientType'] < 2) type = "proton"; + } catch (e) {} + + if (type === "generic") { + try { + type = await checkGmail(user, type); + } catch (e) {} + } + + if (type === "generic") { + let domain = user.split("@")[1].trim(); + + if (domain === "outlook.dk" + || domain === "skype.dk" + || domain === "live.dk" + || domain === "hotmail.dk" + || domain === "outlook.dk" + || domain === "skype.se" + || domain === "live.se" + || domain === "hotmail.se" + || domain === "outlook.se" + || domain === "outlook.fr" + || domain === "skype.fr" + || domain === "live.fr" + || domain === "hotmail.fr" + || domain === "outlook.it" + || domain === "skype.it" + || domain === "live.it" + || domain === "hotmail.it" + || domain === "outlook.de" + || domain === "skype.de" + || domain === "live.de" + || domain === "hotmail.de" + || domain === "outlook.com.au" + || domain === "hotmail.com" + || domain === "hotmail.co.uk" + || domain === "hotmail.eu" + || domain === "hotmail.co" + || domain === "hotmail.net" + || domain === "hotmail.org" + || domain === "live.com" + || domain === "live.co.uk" + || domain === "line.net" + || domain === "line.co" + || domain === "line.org" + || domain === "line.eu" + || domain === "skype.com" + || domain === "skype.co.uk" + || domain === "skype.net" + || domain === "skype.co" + || domain === "skype.org" + || domain === "skype.eu" + || domain === "outlook.com" + || domain === "outlook.org" + || domain === "outlook.co" + || domain === "outlook.eu") { + type = "outlook"; + } + } + + if (type === "generic") { + let domain = user.split("@")[1].trim(); + + if (domain === "yahoo.com" + || domain === "yahoo.fr" + || domain === "yahoo.co.uk") { + type = "yahoo"; + } + } + + let parts = user.split("@").map(i => i.trim()); + let icon = "https://img.icons8.com/fluency-systems-regular/64/ffffff/email.png"; + let title = "Email"; + + if (type === "gmail") { + icon = "https://upload.wikimedia.org/wikipedia/commons/7/7e/Gmail_icon_%282020%29.svg"; + title = "Gmail"; + } + + if (type === "outlook") { + icon = "https://upload.wikimedia.org/wikipedia/commons/d/df/Microsoft_Office_Outlook_%282018%E2%80%93present%29.svg"; + title = "Outlook"; + } + + if (type === "yahoo") { + icon = "https://upload.wikimedia.org/wikipedia/commons/e/e0/Yahoo%21_Mail_icon_%282013-2019%29.png"; + title = "Yahoo"; + } + + if (type === "proton") { + icon = "https://proton.me/static/fc5b1e8b92dd09734ca7c9d91e89db93/proton-mail-badge.svg"; + title = "Proton Mail"; + } + + console.log(JSON.stringify({ + error: null, + avatar: icon, + name: title, + description: user, + link: "mailto:" + user, + copy: [ + { + title: "Copy email address", + text: user + }, + { + title: "Copy email domain", + text: parts[1] + }, + { + title: "Copy email user name", + text: parts[0] + }, + { + title: "Copy mailto: link", + text: `mailto:${user}` + } + ] + }, null, 2)); +})(); \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/.package-lock.json b/includes/external/addressbook/node_modules/.package-lock.json index ce30b70..ba24333 100644 --- a/includes/external/addressbook/node_modules/.package-lock.json +++ b/includes/external/addressbook/node_modules/.package-lock.json @@ -3,6 +3,33 @@ "lockfileVersion": 2, "requires": true, "packages": { + "node_modules/@sindresorhus/is": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.3.0.tgz", + "integrity": "sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw==", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "dependencies": { + "defer-to-connect": "^2.0.1" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" + }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -18,6 +45,77 @@ "proxy-from-env": "^1.1.0" } }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, + "node_modules/cacheable-lookup": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", + "engines": { + "node": ">=14.16" + } + }, + "node_modules/cacheable-request": { + "version": "10.2.9", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.9.tgz", + "integrity": "sha512-CaAMr53AS1Tb9evO1BIWFnZjSr8A4pbXofpsNVWPMDZZj3ZQKHwsQG9BrTqQ4x5ZYJXz1T2b8LLtTZODxSpzbg==", + "dependencies": { + "@types/http-cache-semantics": "^4.0.1", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.2", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/chardet": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-1.5.1.tgz", + "integrity": "sha512-0XMOtA52igKDOIfvJZJ6v0+J9yMF3IuYyEa5oFUxBXA01G6mwCNKpul3bgbFf7lmZuqwN/oyg/zQ1cGS7NyJkQ==" + }, + "node_modules/cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" + }, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -29,6 +127,65 @@ "node": ">= 0.8" } }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "engines": { + "node": ">=10" + } + }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -37,6 +194,68 @@ "node": ">=0.4.0" } }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", + "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.1" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/entities": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/follow-redirects": { "version": "1.15.2", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", @@ -69,6 +288,119 @@ "node": ">= 6" } }, + "node_modules/form-data-encoder": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", + "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", + "engines": { + "node": ">= 14.17" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/got": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-12.6.0.tgz", + "integrity": "sha512-WTcaQ963xV97MN3x0/CbAriXFZcXCfgxVp91I+Ze6pawQOa7SgzwSx2zIJJsX+kTajMnVs0xcFD1TxZKFqhdnQ==", + "dependencies": { + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", + "decompress-response": "^6.0.0", + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + }, + "node_modules/http2-wrapper": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", + "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "node_modules/keyv": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", + "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -88,10 +420,132 @@ "node": ">= 0.6" } }, + "node_modules/mimic-response": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/normalize-url": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", + "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/open-graph-scraper": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/open-graph-scraper/-/open-graph-scraper-5.2.3.tgz", + "integrity": "sha512-OFKyI3Zv60onbwjUtwTdLwMB9P1O0+U2JV0HD4hHdwyKGwDhyM09udZVU5vEwe/PxI4MyPuVaxcdy1okc4SgWw==", + "dependencies": { + "chardet": "^1.5.1", + "cheerio": "^1.0.0-rc.12", + "got": "^12.6.0", + "iconv-lite": "^0.6.3", + "validator": "^13.9.0" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "engines": { + "node": ">=12.20" + } + }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", + "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", + "dependencies": { + "domhandler": "^5.0.2", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, + "node_modules/responselike": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "dependencies": { + "lowercase-keys": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/validator": { + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.9.0.tgz", + "integrity": "sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA==", + "engines": { + "node": ">= 0.10" + } } } } diff --git a/includes/external/addressbook/node_modules/@sindresorhus/is/dist/index.d.ts b/includes/external/addressbook/node_modules/@sindresorhus/is/dist/index.d.ts new file mode 100644 index 0000000..fe2beb0 --- /dev/null +++ b/includes/external/addressbook/node_modules/@sindresorhus/is/dist/index.d.ts @@ -0,0 +1,235 @@ +/// +/// +/// +import type { Buffer } from 'node:buffer'; +import type { Class, Falsy, TypedArray, ObservableLike, Primitive, WeakRef } from './types.js'; +declare const objectTypeNames: readonly ["Function", "Generator", "AsyncGenerator", "GeneratorFunction", "AsyncGeneratorFunction", "AsyncFunction", "Observable", "Array", "Buffer", "Blob", "Object", "RegExp", "Date", "Error", "Map", "Set", "WeakMap", "WeakSet", "WeakRef", "ArrayBuffer", "SharedArrayBuffer", "DataView", "Promise", "URL", "FormData", "URLSearchParams", "HTMLElement", "NaN", "Int8Array", "Uint8Array", "Uint8ClampedArray", "Int16Array", "Uint16Array", "Int32Array", "Uint32Array", "Float32Array", "Float64Array", "BigInt64Array", "BigUint64Array"]; +declare type ObjectTypeName = typeof objectTypeNames[number]; +declare const primitiveTypeNames: readonly ["null", "undefined", "string", "number", "bigint", "boolean", "symbol"]; +declare type PrimitiveTypeName = typeof primitiveTypeNames[number]; +export declare type TypeName = ObjectTypeName | PrimitiveTypeName; +declare function is(value: unknown): TypeName; +declare namespace is { + var undefined: (value: unknown) => value is undefined; + var string: (value: unknown) => value is string; + var number: (value: unknown) => value is number; + var bigint: (value: unknown) => value is bigint; + var function_: (value: unknown) => value is Function; + var null_: (value: unknown) => value is null; + var class_: (value: unknown) => value is Class; + var boolean: (value: unknown) => value is boolean; + var symbol: (value: unknown) => value is symbol; + var numericString: (value: unknown) => value is string; + var array: (value: unknown, assertion?: ((value: T) => value is T) | undefined) => value is T[]; + var buffer: (value: unknown) => value is Buffer; + var blob: (value: unknown) => value is Blob; + var nullOrUndefined: (value: unknown) => value is null | undefined; + var object: (value: unknown) => value is object; + var iterable: (value: unknown) => value is Iterable; + var asyncIterable: (value: unknown) => value is AsyncIterable; + var generator: (value: unknown) => value is Generator; + var asyncGenerator: (value: unknown) => value is AsyncGenerator; + var nativePromise: (value: unknown) => value is Promise; + var promise: (value: unknown) => value is Promise; + var generatorFunction: (value: unknown) => value is GeneratorFunction; + var asyncGeneratorFunction: (value: unknown) => value is (...args: any[]) => Promise; + var asyncFunction: (value: unknown) => value is (...args: any[]) => Promise; + var boundFunction: (value: unknown) => value is Function; + var regExp: (value: unknown) => value is RegExp; + var date: (value: unknown) => value is Date; + var error: (value: unknown) => value is Error; + var map: (value: unknown) => value is Map; + var set: (value: unknown) => value is Set; + var weakMap: (value: unknown) => value is WeakMap; + var weakSet: (value: unknown) => value is WeakSet; + var weakRef: (value: unknown) => value is WeakRef; + var int8Array: (value: unknown) => value is Int8Array; + var uint8Array: (value: unknown) => value is Uint8Array; + var uint8ClampedArray: (value: unknown) => value is Uint8ClampedArray; + var int16Array: (value: unknown) => value is Int16Array; + var uint16Array: (value: unknown) => value is Uint16Array; + var int32Array: (value: unknown) => value is Int32Array; + var uint32Array: (value: unknown) => value is Uint32Array; + var float32Array: (value: unknown) => value is Float32Array; + var float64Array: (value: unknown) => value is Float64Array; + var bigInt64Array: (value: unknown) => value is BigInt64Array; + var bigUint64Array: (value: unknown) => value is BigUint64Array; + var arrayBuffer: (value: unknown) => value is ArrayBuffer; + var sharedArrayBuffer: (value: unknown) => value is SharedArrayBuffer; + var dataView: (value: unknown) => value is DataView; + var enumCase: (value: unknown, targetEnum: T) => boolean; + var directInstanceOf: (instance: unknown, class_: Class) => instance is T; + var urlInstance: (value: unknown) => value is URL; + var urlString: (value: unknown) => value is string; + var truthy: (value: Falsy | T) => value is T; + var falsy: (value: Falsy | T) => value is Falsy; + var nan: (value: unknown) => boolean; + var primitive: (value: unknown) => value is Primitive; + var integer: (value: unknown) => value is number; + var safeInteger: (value: unknown) => value is number; + var plainObject: (value: unknown) => value is Record; + var typedArray: (value: unknown) => value is TypedArray; + var arrayLike: (value: unknown) => value is ArrayLike; + var inRange: (value: number, range: number | number[]) => value is number; + var domElement: (value: unknown) => value is HTMLElement; + var observable: (value: unknown) => value is ObservableLike; + var nodeStream: (value: unknown) => value is NodeStream; + var infinite: (value: unknown) => value is number; + var evenInteger: (value: number) => value is number; + var oddInteger: (value: number) => value is number; + var emptyArray: (value: unknown) => value is never[]; + var nonEmptyArray: (value: unknown) => value is [unknown, ...unknown[]]; + var emptyString: (value: unknown) => value is ""; + var emptyStringOrWhitespace: (value: unknown) => value is string; + var nonEmptyString: (value: unknown) => value is string; + var nonEmptyStringAndNotWhitespace: (value: unknown) => value is string; + var emptyObject: (value: unknown) => value is Record; + var nonEmptyObject: (value: unknown) => value is Record; + var emptySet: (value: unknown) => value is Set; + var nonEmptySet: (value: unknown) => value is Set; + var emptyMap: (value: unknown) => value is Map; + var nonEmptyMap: (value: unknown) => value is Map; + var propertyKey: (value: unknown) => value is PropertyKey; + var formData: (value: unknown) => value is FormData; + var urlSearchParams: (value: unknown) => value is URLSearchParams; + var any: (predicate: Predicate | Predicate[], ...values: unknown[]) => boolean; + var all: (predicate: Predicate, ...values: unknown[]) => boolean; +} +export interface ArrayLike { + readonly [index: number]: T; + readonly length: number; +} +export interface NodeStream extends NodeJS.EventEmitter { + pipe(destination: T, options?: { + end?: boolean; + }): T; +} +export declare type Predicate = (value: unknown) => boolean; +export declare const enum AssertionTypeDescription { + class_ = "Class", + numericString = "string with a number", + nullOrUndefined = "null or undefined", + iterable = "Iterable", + asyncIterable = "AsyncIterable", + nativePromise = "native Promise", + urlString = "string with a URL", + truthy = "truthy", + falsy = "falsy", + nan = "NaN", + primitive = "primitive", + integer = "integer", + safeInteger = "integer", + plainObject = "plain object", + arrayLike = "array-like", + typedArray = "TypedArray", + domElement = "HTMLElement", + nodeStream = "Node.js Stream", + infinite = "infinite number", + emptyArray = "empty array", + nonEmptyArray = "non-empty array", + emptyString = "empty string", + emptyStringOrWhitespace = "empty string or whitespace", + nonEmptyString = "non-empty string", + nonEmptyStringAndNotWhitespace = "non-empty string and not whitespace", + emptyObject = "empty object", + nonEmptyObject = "non-empty object", + emptySet = "empty set", + nonEmptySet = "non-empty set", + emptyMap = "empty map", + nonEmptyMap = "non-empty map", + evenInteger = "even integer", + oddInteger = "odd integer", + directInstanceOf = "T", + inRange = "in range", + any = "predicate returns truthy for any value", + all = "predicate returns truthy for all values" +} +interface Assert { + undefined: (value: unknown) => asserts value is undefined; + string: (value: unknown) => asserts value is string; + number: (value: unknown) => asserts value is number; + bigint: (value: unknown) => asserts value is bigint; + function_: (value: unknown) => asserts value is Function; + null_: (value: unknown) => asserts value is null; + class_: (value: unknown) => asserts value is Class; + boolean: (value: unknown) => asserts value is boolean; + symbol: (value: unknown) => asserts value is symbol; + numericString: (value: unknown) => asserts value is string; + array: (value: unknown, assertion?: (element: unknown) => asserts element is T) => asserts value is T[]; + buffer: (value: unknown) => asserts value is Buffer; + blob: (value: unknown) => asserts value is Blob; + nullOrUndefined: (value: unknown) => asserts value is null | undefined; + object: (value: unknown) => asserts value is Record; + iterable: (value: unknown) => asserts value is Iterable; + asyncIterable: (value: unknown) => asserts value is AsyncIterable; + generator: (value: unknown) => asserts value is Generator; + asyncGenerator: (value: unknown) => asserts value is AsyncGenerator; + nativePromise: (value: unknown) => asserts value is Promise; + promise: (value: unknown) => asserts value is Promise; + generatorFunction: (value: unknown) => asserts value is GeneratorFunction; + asyncGeneratorFunction: (value: unknown) => asserts value is AsyncGeneratorFunction; + asyncFunction: (value: unknown) => asserts value is Function; + boundFunction: (value: unknown) => asserts value is Function; + regExp: (value: unknown) => asserts value is RegExp; + date: (value: unknown) => asserts value is Date; + error: (value: unknown) => asserts value is Error; + map: (value: unknown) => asserts value is Map; + set: (value: unknown) => asserts value is Set; + weakMap: (value: unknown) => asserts value is WeakMap; + weakSet: (value: unknown) => asserts value is WeakSet; + weakRef: (value: unknown) => asserts value is WeakRef; + int8Array: (value: unknown) => asserts value is Int8Array; + uint8Array: (value: unknown) => asserts value is Uint8Array; + uint8ClampedArray: (value: unknown) => asserts value is Uint8ClampedArray; + int16Array: (value: unknown) => asserts value is Int16Array; + uint16Array: (value: unknown) => asserts value is Uint16Array; + int32Array: (value: unknown) => asserts value is Int32Array; + uint32Array: (value: unknown) => asserts value is Uint32Array; + float32Array: (value: unknown) => asserts value is Float32Array; + float64Array: (value: unknown) => asserts value is Float64Array; + bigInt64Array: (value: unknown) => asserts value is BigInt64Array; + bigUint64Array: (value: unknown) => asserts value is BigUint64Array; + arrayBuffer: (value: unknown) => asserts value is ArrayBuffer; + sharedArrayBuffer: (value: unknown) => asserts value is SharedArrayBuffer; + dataView: (value: unknown) => asserts value is DataView; + enumCase: (value: unknown, targetEnum: T) => asserts value is T[keyof T]; + urlInstance: (value: unknown) => asserts value is URL; + urlString: (value: unknown) => asserts value is string; + truthy: (value: unknown) => asserts value is unknown; + falsy: (value: unknown) => asserts value is unknown; + nan: (value: unknown) => asserts value is unknown; + primitive: (value: unknown) => asserts value is Primitive; + integer: (value: unknown) => asserts value is number; + safeInteger: (value: unknown) => asserts value is number; + plainObject: (value: unknown) => asserts value is Record; + typedArray: (value: unknown) => asserts value is TypedArray; + arrayLike: (value: unknown) => asserts value is ArrayLike; + domElement: (value: unknown) => asserts value is HTMLElement; + observable: (value: unknown) => asserts value is ObservableLike; + nodeStream: (value: unknown) => asserts value is NodeStream; + infinite: (value: unknown) => asserts value is number; + emptyArray: (value: unknown) => asserts value is never[]; + nonEmptyArray: (value: unknown) => asserts value is [unknown, ...unknown[]]; + emptyString: (value: unknown) => asserts value is ''; + emptyStringOrWhitespace: (value: unknown) => asserts value is string; + nonEmptyString: (value: unknown) => asserts value is string; + nonEmptyStringAndNotWhitespace: (value: unknown) => asserts value is string; + emptyObject: (value: unknown) => asserts value is Record; + nonEmptyObject: (value: unknown) => asserts value is Record; + emptySet: (value: unknown) => asserts value is Set; + nonEmptySet: (value: unknown) => asserts value is Set; + emptyMap: (value: unknown) => asserts value is Map; + nonEmptyMap: (value: unknown) => asserts value is Map; + propertyKey: (value: unknown) => asserts value is PropertyKey; + formData: (value: unknown) => asserts value is FormData; + urlSearchParams: (value: unknown) => asserts value is URLSearchParams; + evenInteger: (value: number) => asserts value is number; + oddInteger: (value: number) => asserts value is number; + directInstanceOf: (instance: unknown, class_: Class) => asserts instance is T; + inRange: (value: number, range: number | number[]) => asserts value is number; + any: (predicate: Predicate | Predicate[], ...values: unknown[]) => void | never; + all: (predicate: Predicate, ...values: unknown[]) => void | never; +} +export declare const assert: Assert; +export default is; +export type { Class, TypedArray, ObservableLike, Primitive } from './types.js'; diff --git a/includes/external/addressbook/node_modules/@sindresorhus/is/dist/index.js b/includes/external/addressbook/node_modules/@sindresorhus/is/dist/index.js new file mode 100644 index 0000000..9161dc2 --- /dev/null +++ b/includes/external/addressbook/node_modules/@sindresorhus/is/dist/index.js @@ -0,0 +1,434 @@ +const typedArrayTypeNames = [ + 'Int8Array', + 'Uint8Array', + 'Uint8ClampedArray', + 'Int16Array', + 'Uint16Array', + 'Int32Array', + 'Uint32Array', + 'Float32Array', + 'Float64Array', + 'BigInt64Array', + 'BigUint64Array', +]; +function isTypedArrayName(name) { + return typedArrayTypeNames.includes(name); +} +const objectTypeNames = [ + 'Function', + 'Generator', + 'AsyncGenerator', + 'GeneratorFunction', + 'AsyncGeneratorFunction', + 'AsyncFunction', + 'Observable', + 'Array', + 'Buffer', + 'Blob', + 'Object', + 'RegExp', + 'Date', + 'Error', + 'Map', + 'Set', + 'WeakMap', + 'WeakSet', + 'WeakRef', + 'ArrayBuffer', + 'SharedArrayBuffer', + 'DataView', + 'Promise', + 'URL', + 'FormData', + 'URLSearchParams', + 'HTMLElement', + 'NaN', + ...typedArrayTypeNames, +]; +function isObjectTypeName(name) { + return objectTypeNames.includes(name); +} +const primitiveTypeNames = [ + 'null', + 'undefined', + 'string', + 'number', + 'bigint', + 'boolean', + 'symbol', +]; +function isPrimitiveTypeName(name) { + return primitiveTypeNames.includes(name); +} +// eslint-disable-next-line @typescript-eslint/ban-types +function isOfType(type) { + return (value) => typeof value === type; +} +const { toString } = Object.prototype; +const getObjectType = (value) => { + const objectTypeName = toString.call(value).slice(8, -1); + if (/HTML\w+Element/.test(objectTypeName) && is.domElement(value)) { + return 'HTMLElement'; + } + if (isObjectTypeName(objectTypeName)) { + return objectTypeName; + } + return undefined; +}; +const isObjectOfType = (type) => (value) => getObjectType(value) === type; +function is(value) { + if (value === null) { + return 'null'; + } + switch (typeof value) { + case 'undefined': + return 'undefined'; + case 'string': + return 'string'; + case 'number': + return Number.isNaN(value) ? 'NaN' : 'number'; + case 'boolean': + return 'boolean'; + case 'function': + return 'Function'; + case 'bigint': + return 'bigint'; + case 'symbol': + return 'symbol'; + default: + } + if (is.observable(value)) { + return 'Observable'; + } + if (is.array(value)) { + return 'Array'; + } + if (is.buffer(value)) { + return 'Buffer'; + } + const tagType = getObjectType(value); + if (tagType) { + return tagType; + } + if (value instanceof String || value instanceof Boolean || value instanceof Number) { + throw new TypeError('Please don\'t use object wrappers for primitive types'); + } + return 'Object'; +} +is.undefined = isOfType('undefined'); +is.string = isOfType('string'); +const isNumberType = isOfType('number'); +is.number = (value) => isNumberType(value) && !is.nan(value); +is.bigint = isOfType('bigint'); +// eslint-disable-next-line @typescript-eslint/ban-types +is.function_ = isOfType('function'); +// eslint-disable-next-line @typescript-eslint/ban-types +is.null_ = (value) => value === null; +is.class_ = (value) => is.function_(value) && value.toString().startsWith('class '); +is.boolean = (value) => value === true || value === false; +is.symbol = isOfType('symbol'); +is.numericString = (value) => is.string(value) && !is.emptyStringOrWhitespace(value) && !Number.isNaN(Number(value)); +is.array = (value, assertion) => { + if (!Array.isArray(value)) { + return false; + } + if (!is.function_(assertion)) { + return true; + } + return value.every(element => assertion(element)); +}; +// eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call +is.buffer = (value) => value?.constructor?.isBuffer?.(value) ?? false; +is.blob = (value) => isObjectOfType('Blob')(value); +is.nullOrUndefined = (value) => is.null_(value) || is.undefined(value); // eslint-disable-line @typescript-eslint/ban-types +is.object = (value) => !is.null_(value) && (typeof value === 'object' || is.function_(value)); // eslint-disable-line @typescript-eslint/ban-types +is.iterable = (value) => is.function_(value?.[Symbol.iterator]); +is.asyncIterable = (value) => is.function_(value?.[Symbol.asyncIterator]); +is.generator = (value) => is.iterable(value) && is.function_(value?.next) && is.function_(value?.throw); +is.asyncGenerator = (value) => is.asyncIterable(value) && is.function_(value.next) && is.function_(value.throw); +is.nativePromise = (value) => isObjectOfType('Promise')(value); +const hasPromiseApi = (value) => is.function_(value?.then) + && is.function_(value?.catch); +is.promise = (value) => is.nativePromise(value) || hasPromiseApi(value); +is.generatorFunction = isObjectOfType('GeneratorFunction'); +is.asyncGeneratorFunction = (value) => getObjectType(value) === 'AsyncGeneratorFunction'; +is.asyncFunction = (value) => getObjectType(value) === 'AsyncFunction'; +// eslint-disable-next-line no-prototype-builtins, @typescript-eslint/ban-types +is.boundFunction = (value) => is.function_(value) && !value.hasOwnProperty('prototype'); +is.regExp = isObjectOfType('RegExp'); +is.date = isObjectOfType('Date'); +is.error = isObjectOfType('Error'); +is.map = (value) => isObjectOfType('Map')(value); +is.set = (value) => isObjectOfType('Set')(value); +is.weakMap = (value) => isObjectOfType('WeakMap')(value); // eslint-disable-line @typescript-eslint/ban-types +is.weakSet = (value) => isObjectOfType('WeakSet')(value); // eslint-disable-line @typescript-eslint/ban-types +is.weakRef = (value) => isObjectOfType('WeakRef')(value); // eslint-disable-line @typescript-eslint/ban-types +is.int8Array = isObjectOfType('Int8Array'); +is.uint8Array = isObjectOfType('Uint8Array'); +is.uint8ClampedArray = isObjectOfType('Uint8ClampedArray'); +is.int16Array = isObjectOfType('Int16Array'); +is.uint16Array = isObjectOfType('Uint16Array'); +is.int32Array = isObjectOfType('Int32Array'); +is.uint32Array = isObjectOfType('Uint32Array'); +is.float32Array = isObjectOfType('Float32Array'); +is.float64Array = isObjectOfType('Float64Array'); +is.bigInt64Array = isObjectOfType('BigInt64Array'); +is.bigUint64Array = isObjectOfType('BigUint64Array'); +is.arrayBuffer = isObjectOfType('ArrayBuffer'); +is.sharedArrayBuffer = isObjectOfType('SharedArrayBuffer'); +is.dataView = isObjectOfType('DataView'); +is.enumCase = (value, targetEnum) => Object.values(targetEnum).includes(value); +is.directInstanceOf = (instance, class_) => Object.getPrototypeOf(instance) === class_.prototype; +is.urlInstance = (value) => isObjectOfType('URL')(value); +is.urlString = (value) => { + if (!is.string(value)) { + return false; + } + try { + new URL(value); // eslint-disable-line no-new + return true; + } + catch { + return false; + } +}; +// Example: `is.truthy = (value: unknown): value is (not false | not 0 | not '' | not undefined | not null) => Boolean(value);` +is.truthy = (value) => Boolean(value); // eslint-disable-line unicorn/prefer-native-coercion-functions +// Example: `is.falsy = (value: unknown): value is (not true | 0 | '' | undefined | null) => Boolean(value);` +is.falsy = (value) => !value; +is.nan = (value) => Number.isNaN(value); +is.primitive = (value) => is.null_(value) || isPrimitiveTypeName(typeof value); +is.integer = (value) => Number.isInteger(value); +is.safeInteger = (value) => Number.isSafeInteger(value); +is.plainObject = (value) => { + // From: https://github.com/sindresorhus/is-plain-obj/blob/main/index.js + if (typeof value !== 'object' || value === null) { + return false; + } + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + const prototype = Object.getPrototypeOf(value); + return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value); +}; +is.typedArray = (value) => isTypedArrayName(getObjectType(value)); +const isValidLength = (value) => is.safeInteger(value) && value >= 0; +is.arrayLike = (value) => !is.nullOrUndefined(value) && !is.function_(value) && isValidLength(value.length); +is.inRange = (value, range) => { + if (is.number(range)) { + return value >= Math.min(0, range) && value <= Math.max(range, 0); + } + if (is.array(range) && range.length === 2) { + return value >= Math.min(...range) && value <= Math.max(...range); + } + throw new TypeError(`Invalid range: ${JSON.stringify(range)}`); +}; +// eslint-disable-next-line @typescript-eslint/naming-convention +const NODE_TYPE_ELEMENT = 1; +// eslint-disable-next-line @typescript-eslint/naming-convention +const DOM_PROPERTIES_TO_CHECK = [ + 'innerHTML', + 'ownerDocument', + 'style', + 'attributes', + 'nodeValue', +]; +is.domElement = (value) => is.object(value) + && value.nodeType === NODE_TYPE_ELEMENT + && is.string(value.nodeName) + && !is.plainObject(value) + && DOM_PROPERTIES_TO_CHECK.every(property => property in value); +is.observable = (value) => { + if (!value) { + return false; + } + // eslint-disable-next-line no-use-extend-native/no-use-extend-native, @typescript-eslint/no-unsafe-call + if (value === value[Symbol.observable]?.()) { + return true; + } + // eslint-disable-next-line @typescript-eslint/no-unsafe-call + if (value === value['@@observable']?.()) { + return true; + } + return false; +}; +is.nodeStream = (value) => is.object(value) && is.function_(value.pipe) && !is.observable(value); +is.infinite = (value) => value === Number.POSITIVE_INFINITY || value === Number.NEGATIVE_INFINITY; +const isAbsoluteMod2 = (remainder) => (value) => is.integer(value) && Math.abs(value % 2) === remainder; +is.evenInteger = isAbsoluteMod2(0); +is.oddInteger = isAbsoluteMod2(1); +is.emptyArray = (value) => is.array(value) && value.length === 0; +is.nonEmptyArray = (value) => is.array(value) && value.length > 0; +is.emptyString = (value) => is.string(value) && value.length === 0; +const isWhiteSpaceString = (value) => is.string(value) && !/\S/.test(value); +is.emptyStringOrWhitespace = (value) => is.emptyString(value) || isWhiteSpaceString(value); +// TODO: Use `not ''` when the `not` operator is available. +is.nonEmptyString = (value) => is.string(value) && value.length > 0; +// TODO: Use `not ''` when the `not` operator is available. +is.nonEmptyStringAndNotWhitespace = (value) => is.string(value) && !is.emptyStringOrWhitespace(value); +// eslint-disable-next-line unicorn/no-array-callback-reference +is.emptyObject = (value) => is.object(value) && !is.map(value) && !is.set(value) && Object.keys(value).length === 0; +// TODO: Use `not` operator here to remove `Map` and `Set` from type guard: +// - https://github.com/Microsoft/TypeScript/pull/29317 +// eslint-disable-next-line unicorn/no-array-callback-reference +is.nonEmptyObject = (value) => is.object(value) && !is.map(value) && !is.set(value) && Object.keys(value).length > 0; +is.emptySet = (value) => is.set(value) && value.size === 0; +is.nonEmptySet = (value) => is.set(value) && value.size > 0; +// eslint-disable-next-line unicorn/no-array-callback-reference +is.emptyMap = (value) => is.map(value) && value.size === 0; +// eslint-disable-next-line unicorn/no-array-callback-reference +is.nonEmptyMap = (value) => is.map(value) && value.size > 0; +// `PropertyKey` is any value that can be used as an object key (string, number, or symbol) +is.propertyKey = (value) => is.any([is.string, is.number, is.symbol], value); +is.formData = (value) => isObjectOfType('FormData')(value); +is.urlSearchParams = (value) => isObjectOfType('URLSearchParams')(value); +const predicateOnArray = (method, predicate, values) => { + if (!is.function_(predicate)) { + throw new TypeError(`Invalid predicate: ${JSON.stringify(predicate)}`); + } + if (values.length === 0) { + throw new TypeError('Invalid number of values'); + } + return method.call(values, predicate); +}; +is.any = (predicate, ...values) => { + const predicates = is.array(predicate) ? predicate : [predicate]; + return predicates.some(singlePredicate => predicateOnArray(Array.prototype.some, singlePredicate, values)); +}; +is.all = (predicate, ...values) => predicateOnArray(Array.prototype.every, predicate, values); +const assertType = (condition, description, value, options = {}) => { + if (!condition) { + const { multipleValues } = options; + const valuesMessage = multipleValues + ? `received values of types ${[ + ...new Set(value.map(singleValue => `\`${is(singleValue)}\``)), + ].join(', ')}` + : `received value of type \`${is(value)}\``; + throw new TypeError(`Expected value which is \`${description}\`, ${valuesMessage}.`); + } +}; +/* eslint-disable @typescript-eslint/no-confusing-void-expression */ +export const assert = { + // Unknowns. + undefined: (value) => assertType(is.undefined(value), 'undefined', value), + string: (value) => assertType(is.string(value), 'string', value), + number: (value) => assertType(is.number(value), 'number', value), + bigint: (value) => assertType(is.bigint(value), 'bigint', value), + // eslint-disable-next-line @typescript-eslint/ban-types + function_: (value) => assertType(is.function_(value), 'Function', value), + null_: (value) => assertType(is.null_(value), 'null', value), + class_: (value) => assertType(is.class_(value), "Class" /* AssertionTypeDescription.class_ */, value), + boolean: (value) => assertType(is.boolean(value), 'boolean', value), + symbol: (value) => assertType(is.symbol(value), 'symbol', value), + numericString: (value) => assertType(is.numericString(value), "string with a number" /* AssertionTypeDescription.numericString */, value), + array: (value, assertion) => { + const assert = assertType; + assert(is.array(value), 'Array', value); + if (assertion) { + // eslint-disable-next-line unicorn/no-array-for-each, unicorn/no-array-callback-reference + value.forEach(assertion); + } + }, + buffer: (value) => assertType(is.buffer(value), 'Buffer', value), + blob: (value) => assertType(is.blob(value), 'Blob', value), + nullOrUndefined: (value) => assertType(is.nullOrUndefined(value), "null or undefined" /* AssertionTypeDescription.nullOrUndefined */, value), + object: (value) => assertType(is.object(value), 'Object', value), + iterable: (value) => assertType(is.iterable(value), "Iterable" /* AssertionTypeDescription.iterable */, value), + asyncIterable: (value) => assertType(is.asyncIterable(value), "AsyncIterable" /* AssertionTypeDescription.asyncIterable */, value), + generator: (value) => assertType(is.generator(value), 'Generator', value), + asyncGenerator: (value) => assertType(is.asyncGenerator(value), 'AsyncGenerator', value), + nativePromise: (value) => assertType(is.nativePromise(value), "native Promise" /* AssertionTypeDescription.nativePromise */, value), + promise: (value) => assertType(is.promise(value), 'Promise', value), + generatorFunction: (value) => assertType(is.generatorFunction(value), 'GeneratorFunction', value), + asyncGeneratorFunction: (value) => assertType(is.asyncGeneratorFunction(value), 'AsyncGeneratorFunction', value), + // eslint-disable-next-line @typescript-eslint/ban-types + asyncFunction: (value) => assertType(is.asyncFunction(value), 'AsyncFunction', value), + // eslint-disable-next-line @typescript-eslint/ban-types + boundFunction: (value) => assertType(is.boundFunction(value), 'Function', value), + regExp: (value) => assertType(is.regExp(value), 'RegExp', value), + date: (value) => assertType(is.date(value), 'Date', value), + error: (value) => assertType(is.error(value), 'Error', value), + map: (value) => assertType(is.map(value), 'Map', value), + set: (value) => assertType(is.set(value), 'Set', value), + weakMap: (value) => assertType(is.weakMap(value), 'WeakMap', value), + weakSet: (value) => assertType(is.weakSet(value), 'WeakSet', value), + weakRef: (value) => assertType(is.weakRef(value), 'WeakRef', value), + int8Array: (value) => assertType(is.int8Array(value), 'Int8Array', value), + uint8Array: (value) => assertType(is.uint8Array(value), 'Uint8Array', value), + uint8ClampedArray: (value) => assertType(is.uint8ClampedArray(value), 'Uint8ClampedArray', value), + int16Array: (value) => assertType(is.int16Array(value), 'Int16Array', value), + uint16Array: (value) => assertType(is.uint16Array(value), 'Uint16Array', value), + int32Array: (value) => assertType(is.int32Array(value), 'Int32Array', value), + uint32Array: (value) => assertType(is.uint32Array(value), 'Uint32Array', value), + float32Array: (value) => assertType(is.float32Array(value), 'Float32Array', value), + float64Array: (value) => assertType(is.float64Array(value), 'Float64Array', value), + bigInt64Array: (value) => assertType(is.bigInt64Array(value), 'BigInt64Array', value), + bigUint64Array: (value) => assertType(is.bigUint64Array(value), 'BigUint64Array', value), + arrayBuffer: (value) => assertType(is.arrayBuffer(value), 'ArrayBuffer', value), + sharedArrayBuffer: (value) => assertType(is.sharedArrayBuffer(value), 'SharedArrayBuffer', value), + dataView: (value) => assertType(is.dataView(value), 'DataView', value), + enumCase: (value, targetEnum) => assertType(is.enumCase(value, targetEnum), 'EnumCase', value), + urlInstance: (value) => assertType(is.urlInstance(value), 'URL', value), + urlString: (value) => assertType(is.urlString(value), "string with a URL" /* AssertionTypeDescription.urlString */, value), + truthy: (value) => assertType(is.truthy(value), "truthy" /* AssertionTypeDescription.truthy */, value), + falsy: (value) => assertType(is.falsy(value), "falsy" /* AssertionTypeDescription.falsy */, value), + nan: (value) => assertType(is.nan(value), "NaN" /* AssertionTypeDescription.nan */, value), + primitive: (value) => assertType(is.primitive(value), "primitive" /* AssertionTypeDescription.primitive */, value), + integer: (value) => assertType(is.integer(value), "integer" /* AssertionTypeDescription.integer */, value), + safeInteger: (value) => assertType(is.safeInteger(value), "integer" /* AssertionTypeDescription.safeInteger */, value), + plainObject: (value) => assertType(is.plainObject(value), "plain object" /* AssertionTypeDescription.plainObject */, value), + typedArray: (value) => assertType(is.typedArray(value), "TypedArray" /* AssertionTypeDescription.typedArray */, value), + arrayLike: (value) => assertType(is.arrayLike(value), "array-like" /* AssertionTypeDescription.arrayLike */, value), + domElement: (value) => assertType(is.domElement(value), "HTMLElement" /* AssertionTypeDescription.domElement */, value), + observable: (value) => assertType(is.observable(value), 'Observable', value), + nodeStream: (value) => assertType(is.nodeStream(value), "Node.js Stream" /* AssertionTypeDescription.nodeStream */, value), + infinite: (value) => assertType(is.infinite(value), "infinite number" /* AssertionTypeDescription.infinite */, value), + emptyArray: (value) => assertType(is.emptyArray(value), "empty array" /* AssertionTypeDescription.emptyArray */, value), + nonEmptyArray: (value) => assertType(is.nonEmptyArray(value), "non-empty array" /* AssertionTypeDescription.nonEmptyArray */, value), + emptyString: (value) => assertType(is.emptyString(value), "empty string" /* AssertionTypeDescription.emptyString */, value), + emptyStringOrWhitespace: (value) => assertType(is.emptyStringOrWhitespace(value), "empty string or whitespace" /* AssertionTypeDescription.emptyStringOrWhitespace */, value), + nonEmptyString: (value) => assertType(is.nonEmptyString(value), "non-empty string" /* AssertionTypeDescription.nonEmptyString */, value), + nonEmptyStringAndNotWhitespace: (value) => assertType(is.nonEmptyStringAndNotWhitespace(value), "non-empty string and not whitespace" /* AssertionTypeDescription.nonEmptyStringAndNotWhitespace */, value), + emptyObject: (value) => assertType(is.emptyObject(value), "empty object" /* AssertionTypeDescription.emptyObject */, value), + nonEmptyObject: (value) => assertType(is.nonEmptyObject(value), "non-empty object" /* AssertionTypeDescription.nonEmptyObject */, value), + emptySet: (value) => assertType(is.emptySet(value), "empty set" /* AssertionTypeDescription.emptySet */, value), + nonEmptySet: (value) => assertType(is.nonEmptySet(value), "non-empty set" /* AssertionTypeDescription.nonEmptySet */, value), + emptyMap: (value) => assertType(is.emptyMap(value), "empty map" /* AssertionTypeDescription.emptyMap */, value), + nonEmptyMap: (value) => assertType(is.nonEmptyMap(value), "non-empty map" /* AssertionTypeDescription.nonEmptyMap */, value), + propertyKey: (value) => assertType(is.propertyKey(value), 'PropertyKey', value), + formData: (value) => assertType(is.formData(value), 'FormData', value), + urlSearchParams: (value) => assertType(is.urlSearchParams(value), 'URLSearchParams', value), + // Numbers. + evenInteger: (value) => assertType(is.evenInteger(value), "even integer" /* AssertionTypeDescription.evenInteger */, value), + oddInteger: (value) => assertType(is.oddInteger(value), "odd integer" /* AssertionTypeDescription.oddInteger */, value), + // Two arguments. + directInstanceOf: (instance, class_) => assertType(is.directInstanceOf(instance, class_), "T" /* AssertionTypeDescription.directInstanceOf */, instance), + inRange: (value, range) => assertType(is.inRange(value, range), "in range" /* AssertionTypeDescription.inRange */, value), + // Variadic functions. + any: (predicate, ...values) => assertType(is.any(predicate, ...values), "predicate returns truthy for any value" /* AssertionTypeDescription.any */, values, { multipleValues: true }), + all: (predicate, ...values) => assertType(is.all(predicate, ...values), "predicate returns truthy for all values" /* AssertionTypeDescription.all */, values, { multipleValues: true }), +}; +/* eslint-enable @typescript-eslint/no-confusing-void-expression */ +// Some few keywords are reserved, but we'll populate them for Node.js users +// See https://github.com/Microsoft/TypeScript/issues/2536 +Object.defineProperties(is, { + class: { + value: is.class_, + }, + function: { + value: is.function_, + }, + null: { + value: is.null_, + }, +}); +Object.defineProperties(assert, { + class: { + value: assert.class_, + }, + function: { + value: assert.function_, + }, + null: { + value: assert.null_, + }, +}); +export default is; diff --git a/includes/external/addressbook/node_modules/@sindresorhus/is/dist/types.d.ts b/includes/external/addressbook/node_modules/@sindresorhus/is/dist/types.d.ts new file mode 100644 index 0000000..add7d48 --- /dev/null +++ b/includes/external/addressbook/node_modules/@sindresorhus/is/dist/types.d.ts @@ -0,0 +1,29 @@ +/** +Matches any [primitive value](https://developer.mozilla.org/en-US/docs/Glossary/Primitive). +*/ +export declare type Primitive = null | undefined | string | number | boolean | symbol | bigint; +/** +Matches a [`class` constructor](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes). +*/ +export declare type Class = new (...arguments_: Arguments) => T; +/** +Matches any [typed array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray), like `Uint8Array` or `Float64Array`. +*/ +export declare type TypedArray = Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array | BigInt64Array | BigUint64Array; +declare global { + interface SymbolConstructor { + readonly observable: symbol; + } +} +/** +Matches a value that is like an [Observable](https://github.com/tc39/proposal-observable). +*/ +export interface ObservableLike { + subscribe(observer: (value: unknown) => void): void; + [Symbol.observable](): ObservableLike; +} +export declare type Falsy = false | 0 | 0n | '' | null | undefined; +export interface WeakRef { + readonly [Symbol.toStringTag]: 'WeakRef'; + deref(): T | undefined; +} diff --git a/includes/external/addressbook/node_modules/@sindresorhus/is/dist/types.js b/includes/external/addressbook/node_modules/@sindresorhus/is/dist/types.js new file mode 100644 index 0000000..584792b --- /dev/null +++ b/includes/external/addressbook/node_modules/@sindresorhus/is/dist/types.js @@ -0,0 +1,2 @@ +// Extracted from https://github.com/sindresorhus/type-fest/blob/78019f42ea888b0cdceb41a4a78163868de57555/index.d.ts +export {}; diff --git a/includes/external/addressbook/node_modules/@sindresorhus/is/license b/includes/external/addressbook/node_modules/@sindresorhus/is/license new file mode 100644 index 0000000..fa7ceba --- /dev/null +++ b/includes/external/addressbook/node_modules/@sindresorhus/is/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (https://sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/includes/external/addressbook/node_modules/@sindresorhus/is/package.json b/includes/external/addressbook/node_modules/@sindresorhus/is/package.json new file mode 100644 index 0000000..3c029c5 --- /dev/null +++ b/includes/external/addressbook/node_modules/@sindresorhus/is/package.json @@ -0,0 +1,82 @@ +{ + "name": "@sindresorhus/is", + "version": "5.3.0", + "description": "Type check values", + "license": "MIT", + "repository": "sindresorhus/is", + "funding": "https://github.com/sindresorhus/is?sponsor=1", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "type": "module", + "exports": "./dist/index.js", + "types": "./dist/index.d.ts", + "engines": { + "node": ">=14.16" + }, + "scripts": { + "build": "del dist && tsc", + "test": "xo && ava", + "prepare": "npm run build" + }, + "files": [ + "dist" + ], + "keywords": [ + "type", + "types", + "is", + "check", + "checking", + "validate", + "validation", + "utility", + "util", + "typeof", + "instanceof", + "object", + "assert", + "assertion", + "test", + "kind", + "primitive", + "verify", + "compare", + "typescript", + "typeguards", + "types" + ], + "devDependencies": { + "@sindresorhus/tsconfig": "^3.0.1", + "@types/jsdom": "^16.2.15", + "@types/node": "^18.0.6", + "@types/zen-observable": "^0.8.3", + "ava": "^4.3.1", + "del-cli": "^5.0.0", + "jsdom": "^20.0.0", + "rxjs": "^7.5.6", + "tempy": "^3.0.0", + "ts-node": "^10.9.1", + "typescript": "~4.7.4", + "xo": "^0.51.0", + "zen-observable": "^0.8.15" + }, + "sideEffects": false, + "ava": { + "extensions": { + "ts": "module" + }, + "nodeArguments": [ + "--loader=ts-node/esm" + ] + }, + "xo": { + "rules": { + "@typescript-eslint/no-empty-function": "off", + "@typescript-eslint/explicit-function-return-type": "off", + "@typescript-eslint/triple-slash-reference": "off" + } + } +} diff --git a/includes/external/addressbook/node_modules/@sindresorhus/is/readme.md b/includes/external/addressbook/node_modules/@sindresorhus/is/readme.md new file mode 100644 index 0000000..a517379 --- /dev/null +++ b/includes/external/addressbook/node_modules/@sindresorhus/is/readme.md @@ -0,0 +1,670 @@ +# is + +> Type check values + +For example, `is.string('🦄') //=> true` + + + +## Highlights + +- Written in TypeScript +- [Extensive use of type guards](#type-guards) +- [Supports type assertions](#type-assertions) +- [Aware of generic type parameters](#generic-type-parameters) (use with caution) +- Actively maintained +- ![Millions of downloads per week](https://img.shields.io/npm/dw/@sindresorhus/is) + +## Install + +```sh +npm install @sindresorhus/is +``` + +## Usage + +```js +import is from '@sindresorhus/is'; + +is('🦄'); +//=> 'string' + +is(new Map()); +//=> 'Map' + +is.number(6); +//=> true +``` + +[Assertions](#type-assertions) perform the same type checks, but throw an error if the type does not match. + +```js +import {assert} from '@sindresorhus/is'; + +assert.string(2); +//=> Error: Expected value which is `string`, received value of type `number`. +``` + +And with TypeScript: + +```ts +import {assert} from '@sindresorhus/is'; + +assert.string(foo); +// `foo` is now typed as a `string`. +``` + +## API + +### is(value) + +Returns the type of `value`. + +Primitives are lowercase and object types are camelcase. + +Example: + +- `'undefined'` +- `'null'` +- `'string'` +- `'symbol'` +- `'Array'` +- `'Function'` +- `'Object'` + +Note: It will throw an error if you try to feed it object-wrapped primitives, as that's a bad practice. For example `new String('foo')`. + +### is.{method} + +All the below methods accept a value and returns a boolean for whether the value is of the desired type. + +#### Primitives + +##### .undefined(value) +##### .null(value) + +**Note:** TypeScript users must use `.null_()` because of a TypeScript naming limitation. + +##### .string(value) +##### .number(value) + +Note: `is.number(NaN)` returns `false`. This intentionally deviates from `typeof` behavior to increase user-friendliness of `is` type checks. + +##### .boolean(value) +##### .symbol(value) +##### .bigint(value) + +#### Built-in types + +##### .array(value, assertion?) + +Returns true if `value` is an array and all of its items match the assertion (if provided). + +```js +is.array(value); // Validate `value` is an array. +is.array(value, is.number); // Validate `value` is an array and all of its items are numbers. +``` + +##### .function(value) + +**Note:** TypeScript users must use `.function_()` because of a TypeScript naming limitation. + +##### .buffer(value) +##### .blob(value) +##### .object(value) + +Keep in mind that [functions are objects too](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions). + +##### .numericString(value) + +Returns `true` for a string that represents a number satisfying `is.number`, for example, `'42'` and `'-8.3'`. + +Note: `'NaN'` returns `false`, but `'Infinity'` and `'-Infinity'` return `true`. + +##### .regExp(value) +##### .date(value) +##### .error(value) +##### .nativePromise(value) +##### .promise(value) + +Returns `true` for any object with a `.then()` and `.catch()` method. Prefer this one over `.nativePromise()` as you usually want to allow userland promise implementations too. + +##### .generator(value) + +Returns `true` for any object that implements its own `.next()` and `.throw()` methods and has a function definition for `Symbol.iterator`. + +##### .generatorFunction(value) + +##### .asyncFunction(value) + +Returns `true` for any `async` function that can be called with the `await` operator. + +```js +is.asyncFunction(async () => {}); +//=> true + +is.asyncFunction(() => {}); +//=> false +``` + +##### .asyncGenerator(value) + +```js +is.asyncGenerator( + (async function * () { + yield 4; + })() +); +//=> true + +is.asyncGenerator( + (function * () { + yield 4; + })() +); +//=> false +``` + +##### .asyncGeneratorFunction(value) + +```js +is.asyncGeneratorFunction(async function * () { + yield 4; +}); +//=> true + +is.asyncGeneratorFunction(function * () { + yield 4; +}); +//=> false +``` + +##### .boundFunction(value) + +Returns `true` for any `bound` function. + +```js +is.boundFunction(() => {}); +//=> true + +is.boundFunction(function () {}.bind(null)); +//=> true + +is.boundFunction(function () {}); +//=> false +``` + +##### .map(value) +##### .set(value) +##### .weakMap(value) +##### .weakSet(value) +##### .weakRef(value) + +#### Typed arrays + +##### .int8Array(value) +##### .uint8Array(value) +##### .uint8ClampedArray(value) +##### .int16Array(value) +##### .uint16Array(value) +##### .int32Array(value) +##### .uint32Array(value) +##### .float32Array(value) +##### .float64Array(value) +##### .bigInt64Array(value) +##### .bigUint64Array(value) + +#### Structured data + +##### .arrayBuffer(value) +##### .sharedArrayBuffer(value) +##### .dataView(value) + +##### .enumCase(value, enum) + +TypeScript-only. Returns `true` if `value` is a member of `enum`. + +```ts +enum Direction { + Ascending = 'ascending', + Descending = 'descending' +} + +is.enumCase('ascending', Direction); +//=> true + +is.enumCase('other', Direction); +//=> false +``` + +#### Emptiness + +##### .emptyString(value) + +Returns `true` if the value is a `string` and the `.length` is 0. + +##### .emptyStringOrWhitespace(value) + +Returns `true` if `is.emptyString(value)` or if it's a `string` that is all whitespace. + +##### .nonEmptyString(value) + +Returns `true` if the value is a `string` and the `.length` is more than 0. + +##### .nonEmptyStringAndNotWhitespace(value) + +Returns `true` if the value is a `string` that is not empty and not whitespace. + +```js +const values = ['property1', '', null, 'property2', ' ', undefined]; + +values.filter(is.nonEmptyStringAndNotWhitespace); +//=> ['property1', 'property2'] +``` + +##### .emptyArray(value) + +Returns `true` if the value is an `Array` and the `.length` is 0. + +##### .nonEmptyArray(value) + +Returns `true` if the value is an `Array` and the `.length` is more than 0. + +##### .emptyObject(value) + +Returns `true` if the value is an `Object` and `Object.keys(value).length` is 0. + +Please note that `Object.keys` returns only own enumerable properties. Hence something like this can happen: + +```js +const object1 = {}; + +Object.defineProperty(object1, 'property1', { + value: 42, + writable: true, + enumerable: false, + configurable: true +}); + +is.emptyObject(object1); +//=> true +``` + +##### .nonEmptyObject(value) + +Returns `true` if the value is an `Object` and `Object.keys(value).length` is more than 0. + +##### .emptySet(value) + +Returns `true` if the value is a `Set` and the `.size` is 0. + +##### .nonEmptySet(Value) + +Returns `true` if the value is a `Set` and the `.size` is more than 0. + +##### .emptyMap(value) + +Returns `true` if the value is a `Map` and the `.size` is 0. + +##### .nonEmptyMap(value) + +Returns `true` if the value is a `Map` and the `.size` is more than 0. + +#### Miscellaneous + +##### .directInstanceOf(value, class) + +Returns `true` if `value` is a direct instance of `class`. + +```js +is.directInstanceOf(new Error(), Error); +//=> true + +class UnicornError extends Error {} + +is.directInstanceOf(new UnicornError(), Error); +//=> false +``` + +##### .urlInstance(value) + +Returns `true` if `value` is an instance of the [`URL` class](https://developer.mozilla.org/en-US/docs/Web/API/URL). + +```js +const url = new URL('https://example.com'); + +is.urlInstance(url); +//=> true +``` + +##### .urlString(value) + +Returns `true` if `value` is a URL string. + +Note: this only does basic checking using the [`URL` class](https://developer.mozilla.org/en-US/docs/Web/API/URL) constructor. + +```js +const url = 'https://example.com'; + +is.urlString(url); +//=> true + +is.urlString(new URL(url)); +//=> false +``` + +##### .truthy(value) + +Returns `true` for all values that evaluate to true in a boolean context: + +```js +is.truthy('🦄'); +//=> true + +is.truthy(undefined); +//=> false +``` + +##### .falsy(value) + +Returns `true` if `value` is one of: `false`, `0`, `''`, `null`, `undefined`, `NaN`. + +##### .nan(value) +##### .nullOrUndefined(value) +##### .primitive(value) + +JavaScript primitives are as follows: `null`, `undefined`, `string`, `number`, `boolean`, `symbol`. + +##### .integer(value) + +##### .safeInteger(value) + +Returns `true` if `value` is a [safe integer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger). + +##### .plainObject(value) + +An object is plain if it's created by either `{}`, `new Object()`, or `Object.create(null)`. + +##### .iterable(value) +##### .asyncIterable(value) +##### .class(value) + +Returns `true` for instances created by a class. + +**Note:** TypeScript users must use `.class_()` because of a TypeScript naming limitation. + +##### .typedArray(value) + +##### .arrayLike(value) + +A `value` is array-like if it is not a function and has a `value.length` that is a safe integer greater than or equal to 0. + +```js +is.arrayLike(document.forms); +//=> true + +function foo() { + is.arrayLike(arguments); + //=> true +} +foo(); +``` + +##### .inRange(value, range) + +Check if `value` (number) is in the given `range`. The range is an array of two values, lower bound and upper bound, in no specific order. + +```js +is.inRange(3, [0, 5]); +is.inRange(3, [5, 0]); +is.inRange(0, [-2, 2]); +``` + +##### .inRange(value, upperBound) + +Check if `value` (number) is in the range of `0` to `upperBound`. + +```js +is.inRange(3, 10); +``` + +##### .domElement(value) + +Returns `true` if `value` is a DOM Element. + +##### .nodeStream(value) + +Returns `true` if `value` is a Node.js [stream](https://nodejs.org/api/stream.html). + +```js +import fs from 'node:fs'; + +is.nodeStream(fs.createReadStream('unicorn.png')); +//=> true +``` + +##### .observable(value) + +Returns `true` if `value` is an `Observable`. + +```js +import {Observable} from 'rxjs'; + +is.observable(new Observable()); +//=> true +``` + +##### .infinite(value) + +Check if `value` is `Infinity` or `-Infinity`. + +##### .evenInteger(value) + +Returns `true` if `value` is an even integer. + +##### .oddInteger(value) + +Returns `true` if `value` is an odd integer. + +##### .propertyKey(value) + +Returns `true` if `value` can be used as an object property key (either `string`, `number`, or `symbol`). + +##### .formData(value) + +Returns `true` if `value` is an instance of the [`FormData` class](https://developer.mozilla.org/en-US/docs/Web/API/FormData). + +```js +const data = new FormData(); + +is.formData(data); +//=> true +``` + +##### .urlSearchParams(value) + +Returns `true` if `value` is an instance of the [`URLSearchParams` class](https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams). + +```js +const searchParams = new URLSearchParams(); + +is.urlSearchParams(searchParams); +//=> true +``` + +##### .any(predicate | predicate[], ...values) + +Using a single `predicate` argument, returns `true` if **any** of the input `values` returns true in the `predicate`: + +```js +is.any(is.string, {}, true, '🦄'); +//=> true + +is.any(is.boolean, 'unicorns', [], new Map()); +//=> false +``` + +Using an array of `predicate[]`, returns `true` if **any** of the input `values` returns true for **any** of the `predicates` provided in an array: + +```js +is.any([is.string, is.number], {}, true, '🦄'); +//=> true + +is.any([is.boolean, is.number], 'unicorns', [], new Map()); +//=> false +``` + +##### .all(predicate, ...values) + +Returns `true` if **all** of the input `values` returns true in the `predicate`: + +```js +is.all(is.object, {}, new Map(), new Set()); +//=> true + +is.all(is.string, '🦄', [], 'unicorns'); +//=> false +``` + +## Type guards + +When using `is` together with TypeScript, [type guards](http://www.typescriptlang.org/docs/handbook/advanced-types.html#type-guards-and-differentiating-types) are being used extensively to infer the correct type inside if-else statements. + +```ts +import is from '@sindresorhus/is'; + +const padLeft = (value: string, padding: string | number) => { + if (is.number(padding)) { + // `padding` is typed as `number` + return Array(padding + 1).join(' ') + value; + } + + if (is.string(padding)) { + // `padding` is typed as `string` + return padding + value; + } + + throw new TypeError(`Expected 'padding' to be of type 'string' or 'number', got '${is(padding)}'.`); +} + +padLeft('🦄', 3); +//=> ' 🦄' + +padLeft('🦄', '🌈'); +//=> '🌈🦄' +``` + +## Type assertions + +The type guards are also available as [type assertions](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html#assertion-functions), which throw an error for unexpected types. It is a convenient one-line version of the often repetitive "if-not-expected-type-throw" pattern. + +```ts +import {assert} from '@sindresorhus/is'; + +const handleMovieRatingApiResponse = (response: unknown) => { + assert.plainObject(response); + // `response` is now typed as a plain `object` with `unknown` properties. + + assert.number(response.rating); + // `response.rating` is now typed as a `number`. + + assert.string(response.title); + // `response.title` is now typed as a `string`. + + return `${response.title} (${response.rating * 10})`; +}; + +handleMovieRatingApiResponse({rating: 0.87, title: 'The Matrix'}); +//=> 'The Matrix (8.7)' + +// This throws an error. +handleMovieRatingApiResponse({rating: '🦄'}); +``` + +## Generic type parameters + +The type guards and type assertions are aware of [generic type parameters](https://www.typescriptlang.org/docs/handbook/generics.html), such as `Promise` and `Map`. The default is `unknown` for most cases, since `is` cannot check them at runtime. If the generic type is known at compile-time, either implicitly (inferred) or explicitly (provided), `is` propagates the type so it can be used later. + +Use generic type parameters with caution. They are only checked by the TypeScript compiler, and not checked by `is` at runtime. This can lead to unexpected behavior, where the generic type is _assumed_ at compile-time, but actually is something completely different at runtime. It is best to use `unknown` (default) and type-check the value of the generic type parameter at runtime with `is` or `assert`. + +```ts +import {assert} from '@sindresorhus/is'; + +async function badNumberAssumption(input: unknown) { + // Bad assumption about the generic type parameter fools the compile-time type system. + assert.promise(input); + // `input` is a `Promise` but only assumed to be `Promise`. + + const resolved = await input; + // `resolved` is typed as `number` but was not actually checked at runtime. + + // Multiplication will return NaN if the input promise did not actually contain a number. + return 2 * resolved; +} + +async function goodNumberAssertion(input: unknown) { + assert.promise(input); + // `input` is typed as `Promise` + + const resolved = await input; + // `resolved` is typed as `unknown` + + assert.number(resolved); + // `resolved` is typed as `number` + + // Uses runtime checks so only numbers will reach the multiplication. + return 2 * resolved; +} + +badNumberAssumption(Promise.resolve('An unexpected string')); +//=> NaN + +// This correctly throws an error because of the unexpected string value. +goodNumberAssertion(Promise.resolve('An unexpected string')); +``` + +## FAQ + +### Why yet another type checking module? + +There are hundreds of type checking modules on npm, unfortunately, I couldn't find any that fit my needs: + +- Includes both type methods and ability to get the type +- Types of primitives returned as lowercase and object types as camelcase +- Covers all built-ins +- Unsurprising behavior +- Well-maintained +- Comprehensive test suite + +For the ones I found, pick 3 of these. + +The most common mistakes I noticed in these modules was using `instanceof` for type checking, forgetting that functions are objects, and omitting `symbol` as a primitive. + +### Why not just use `instanceof` instead of this package? + +`instanceof` does not work correctly for all types and it does not work across [realms](https://stackoverflow.com/a/49832343/64949). Examples of realms are iframes, windows, web workers, and the `vm` module in Node.js. + +## For enterprise + +Available as part of the Tidelift Subscription. + +The maintainers of @sindresorhus/is and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-sindresorhus-is?utm_source=npm-sindresorhus-is&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) + +## Related + +- [ow](https://github.com/sindresorhus/ow) - Function argument validation for humans +- [is-stream](https://github.com/sindresorhus/is-stream) - Check if something is a Node.js stream +- [is-observable](https://github.com/sindresorhus/is-observable) - Check if a value is an Observable +- [file-type](https://github.com/sindresorhus/file-type) - Detect the file type of a Buffer/Uint8Array +- [is-ip](https://github.com/sindresorhus/is-ip) - Check if a string is an IP address +- [is-array-sorted](https://github.com/sindresorhus/is-array-sorted) - Check if an Array is sorted +- [is-error-constructor](https://github.com/sindresorhus/is-error-constructor) - Check if a value is an error constructor +- [is-empty-iterable](https://github.com/sindresorhus/is-empty-iterable) - Check if an Iterable is empty +- [is-blob](https://github.com/sindresorhus/is-blob) - Check if a value is a Blob - File-like object of immutable, raw data +- [has-emoji](https://github.com/sindresorhus/has-emoji) - Check whether a string has any emoji + +## Maintainers + +- [Sindre Sorhus](https://github.com/sindresorhus) +- [Giora Guttsait](https://github.com/gioragutt) +- [Brandon Smith](https://github.com/brandon93s) diff --git a/includes/external/addressbook/node_modules/@szmarczak/http-timer/LICENSE b/includes/external/addressbook/node_modules/@szmarczak/http-timer/LICENSE new file mode 100644 index 0000000..15ad2e8 --- /dev/null +++ b/includes/external/addressbook/node_modules/@szmarczak/http-timer/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Szymon Marczak + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/includes/external/addressbook/node_modules/@szmarczak/http-timer/README.md b/includes/external/addressbook/node_modules/@szmarczak/http-timer/README.md new file mode 100644 index 0000000..f637767 --- /dev/null +++ b/includes/external/addressbook/node_modules/@szmarczak/http-timer/README.md @@ -0,0 +1,93 @@ +# http-timer +> Timings for HTTP requests + +[![Build Status](https://travis-ci.org/szmarczak/http-timer.svg?branch=master)](https://travis-ci.org/szmarczak/http-timer) +[![Coverage Status](https://coveralls.io/repos/github/szmarczak/http-timer/badge.svg?branch=master)](https://coveralls.io/github/szmarczak/http-timer?branch=master) +[![install size](https://packagephobia.now.sh/badge?p=@szmarczak/http-timer)](https://packagephobia.now.sh/result?p=@szmarczak/http-timer) + +Inspired by the [`request` package](https://github.com/request/request). + +## Installation + +NPM: + +> `npm install @szmarczak/http-timer` + +Yarn: + +> `yarn add @szmarczak/http-timer` + +## Usage +**Note:** +> - The measured events resemble Node.js events, not the kernel ones. +> - Sending a chunk greater than [`highWaterMark`](https://nodejs.org/api/stream.html#stream_new_stream_writable_options) will result in invalid `upload` and `response` timings. You can avoid this by splitting the payload into smaller chunks. + +```js +import https from 'https'; +import timer from '@szmarczak/http-timer'; + +const request = https.get('https://httpbin.org/anything'); +timer(request); + +request.once('response', response => { + response.resume(); + response.once('end', () => { + console.log(response.timings); // You can use `request.timings` as well + }); +}); + +// { +// start: 1572712180361, +// socket: 1572712180362, +// lookup: 1572712180415, +// connect: 1572712180571, +// upload: 1572712180884, +// response: 1572712181037, +// end: 1572712181039, +// error: undefined, +// abort: undefined, +// phases: { +// wait: 1, +// dns: 53, +// tcp: 156, +// request: 313, +// firstByte: 153, +// download: 2, +// total: 678 +// } +// } +``` + +## API + +### timer(request) + +Returns: `Object` + +**Note**: The time is a `number` representing the milliseconds elapsed since the UNIX epoch. + +- `start` - Time when the request started. +- `socket` - Time when a socket was assigned to the request. +- `lookup` - Time when the DNS lookup finished. +- `connect` - Time when the socket successfully connected. +- `secureConnect` - Time when the socket securely connected. +- `upload` - Time when the request finished uploading. +- `response` - Time when the request fired `response` event. +- `end` - Time when the response fired `end` event. +- `error` - Time when the request fired `error` event. +- `abort` - Time when the request fired `abort` event. +- `phases` + - `wait` - `timings.socket - timings.start` + - `dns` - `timings.lookup - timings.socket` + - `tcp` - `timings.connect - timings.lookup` + - `tls` - `timings.secureConnect - timings.connect` + - `request` - `timings.upload - (timings.secureConnect || timings.connect)` + - `firstByte` - `timings.response - timings.upload` + - `download` - `timings.end - timings.response` + - `total` - `(timings.end || timings.error || timings.abort) - timings.start` + +If something has not been measured yet, it will be `undefined`. + +## License + +MIT diff --git a/includes/external/addressbook/node_modules/@szmarczak/http-timer/dist/source/index.d.ts b/includes/external/addressbook/node_modules/@szmarczak/http-timer/dist/source/index.d.ts new file mode 100644 index 0000000..cae5c24 --- /dev/null +++ b/includes/external/addressbook/node_modules/@szmarczak/http-timer/dist/source/index.d.ts @@ -0,0 +1,32 @@ +/// +import type { ClientRequest, IncomingMessage } from 'http'; +export interface Timings { + start: number; + socket?: number; + lookup?: number; + connect?: number; + secureConnect?: number; + upload?: number; + response?: number; + end?: number; + error?: number; + abort?: number; + phases: { + wait?: number; + dns?: number; + tcp?: number; + tls?: number; + request?: number; + firstByte?: number; + download?: number; + total?: number; + }; +} +export interface ClientRequestWithTimings extends ClientRequest { + timings?: Timings; +} +export interface IncomingMessageWithTimings extends IncomingMessage { + timings?: Timings; +} +declare const timer: (request: ClientRequestWithTimings) => Timings; +export default timer; diff --git a/includes/external/addressbook/node_modules/@szmarczak/http-timer/dist/source/index.js b/includes/external/addressbook/node_modules/@szmarczak/http-timer/dist/source/index.js new file mode 100644 index 0000000..407014f --- /dev/null +++ b/includes/external/addressbook/node_modules/@szmarczak/http-timer/dist/source/index.js @@ -0,0 +1,106 @@ +import { errorMonitor } from 'events'; +import { types } from 'util'; +import deferToConnect from 'defer-to-connect'; +const timer = (request) => { + if (request.timings) { + return request.timings; + } + const timings = { + start: Date.now(), + socket: undefined, + lookup: undefined, + connect: undefined, + secureConnect: undefined, + upload: undefined, + response: undefined, + end: undefined, + error: undefined, + abort: undefined, + phases: { + wait: undefined, + dns: undefined, + tcp: undefined, + tls: undefined, + request: undefined, + firstByte: undefined, + download: undefined, + total: undefined, + }, + }; + request.timings = timings; + const handleError = (origin) => { + origin.once(errorMonitor, () => { + timings.error = Date.now(); + timings.phases.total = timings.error - timings.start; + }); + }; + handleError(request); + const onAbort = () => { + timings.abort = Date.now(); + timings.phases.total = timings.abort - timings.start; + }; + request.prependOnceListener('abort', onAbort); + const onSocket = (socket) => { + timings.socket = Date.now(); + timings.phases.wait = timings.socket - timings.start; + if (types.isProxy(socket)) { + return; + } + const lookupListener = () => { + timings.lookup = Date.now(); + timings.phases.dns = timings.lookup - timings.socket; + }; + socket.prependOnceListener('lookup', lookupListener); + deferToConnect(socket, { + connect: () => { + timings.connect = Date.now(); + if (timings.lookup === undefined) { + socket.removeListener('lookup', lookupListener); + timings.lookup = timings.connect; + timings.phases.dns = timings.lookup - timings.socket; + } + timings.phases.tcp = timings.connect - timings.lookup; + }, + secureConnect: () => { + timings.secureConnect = Date.now(); + timings.phases.tls = timings.secureConnect - timings.connect; + }, + }); + }; + if (request.socket) { + onSocket(request.socket); + } + else { + request.prependOnceListener('socket', onSocket); + } + const onUpload = () => { + timings.upload = Date.now(); + timings.phases.request = timings.upload - (timings.secureConnect ?? timings.connect); + }; + if (request.writableFinished) { + onUpload(); + } + else { + request.prependOnceListener('finish', onUpload); + } + request.prependOnceListener('response', (response) => { + timings.response = Date.now(); + timings.phases.firstByte = timings.response - timings.upload; + response.timings = timings; + handleError(response); + response.prependOnceListener('end', () => { + request.off('abort', onAbort); + response.off('aborted', onAbort); + if (timings.phases.total) { + // Aborted or errored + return; + } + timings.end = Date.now(); + timings.phases.download = timings.end - timings.response; + timings.phases.total = timings.end - timings.start; + }); + response.prependOnceListener('aborted', onAbort); + }); + return timings; +}; +export default timer; diff --git a/includes/external/addressbook/node_modules/@szmarczak/http-timer/package.json b/includes/external/addressbook/node_modules/@szmarczak/http-timer/package.json new file mode 100644 index 0000000..d9567b5 --- /dev/null +++ b/includes/external/addressbook/node_modules/@szmarczak/http-timer/package.json @@ -0,0 +1,89 @@ +{ + "name": "@szmarczak/http-timer", + "version": "5.0.1", + "description": "Timings for HTTP requests", + "type": "module", + "exports": "./dist/source/index.js", + "engines": { + "node": ">=14.16" + }, + "scripts": { + "test": "xo && ava", + "build": "del-cli dist && tsc", + "prepare": "npm run build", + "coveralls": "exit 0 && nyc report --reporter=text-lcov | coveralls" + }, + "files": [ + "dist/source" + ], + "keywords": [ + "http", + "https", + "http2", + "timer", + "timings", + "performance", + "measure" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/szmarczak/http-timer.git" + }, + "author": "Szymon Marczak", + "license": "MIT", + "bugs": { + "url": "https://github.com/szmarczak/http-timer/issues" + }, + "homepage": "https://github.com/szmarczak/http-timer#readme", + "dependencies": { + "defer-to-connect": "^2.0.1" + }, + "devDependencies": { + "@ava/typescript": "^2.0.0", + "@sindresorhus/tsconfig": "^1.0.2", + "@types/node": "^16.7.0", + "ava": "^3.15.0", + "coveralls": "^3.1.1", + "del-cli": "^4.0.1", + "http2-wrapper": "^2.1.4", + "nyc": "^15.1.0", + "p-event": "^4.2.0", + "ts-node": "^10.2.1", + "typescript": "^4.3.5", + "xo": "^0.44.0" + }, + "types": "dist/source", + "nyc": { + "extension": [ + ".ts" + ], + "exclude": [ + "**/tests/**" + ] + }, + "xo": { + "rules": { + "@typescript-eslint/no-non-null-assertion": "off", + "@typescript-eslint/no-unsafe-assignment": "off", + "@typescript-eslint/no-unsafe-member-access": "off", + "@typescript-eslint/no-unsafe-call": "off", + "unicorn/prefer-node-protocol": "off" + } + }, + "ava": { + "files": [ + "tests/*" + ], + "timeout": "1m", + "nonSemVerExperiments": { + "nextGenConfig": true, + "configurableModuleFormat": true + }, + "extensions": { + "ts": "module" + }, + "nodeArguments": [ + "--loader=ts-node/esm" + ] + } +} diff --git a/includes/external/addressbook/node_modules/@types/http-cache-semantics/LICENSE b/includes/external/addressbook/node_modules/@types/http-cache-semantics/LICENSE new file mode 100755 index 0000000..9e841e7 --- /dev/null +++ b/includes/external/addressbook/node_modules/@types/http-cache-semantics/LICENSE @@ -0,0 +1,21 @@ + MIT License + + Copyright (c) Microsoft Corporation. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE diff --git a/includes/external/addressbook/node_modules/@types/http-cache-semantics/README.md b/includes/external/addressbook/node_modules/@types/http-cache-semantics/README.md new file mode 100755 index 0000000..ce8964e --- /dev/null +++ b/includes/external/addressbook/node_modules/@types/http-cache-semantics/README.md @@ -0,0 +1,16 @@ +# Installation +> `npm install --save @types/http-cache-semantics` + +# Summary +This package contains type definitions for http-cache-semantics (https://github.com/kornelski/http-cache-semantics#readme). + +# Details +Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/http-cache-semantics. + +### Additional Details + * Last updated: Tue, 06 Jul 2021 21:33:36 GMT + * Dependencies: none + * Global values: none + +# Credits +These definitions were written by [BendingBender](https://github.com/BendingBender). diff --git a/includes/external/addressbook/node_modules/@types/http-cache-semantics/index.d.ts b/includes/external/addressbook/node_modules/@types/http-cache-semantics/index.d.ts new file mode 100755 index 0000000..54c1513 --- /dev/null +++ b/includes/external/addressbook/node_modules/@types/http-cache-semantics/index.d.ts @@ -0,0 +1,170 @@ +// Type definitions for http-cache-semantics 4.0 +// Project: https://github.com/kornelski/http-cache-semantics#readme +// Definitions by: BendingBender +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +export = CachePolicy; + +declare class CachePolicy { + constructor(req: CachePolicy.Request, res: CachePolicy.Response, options?: CachePolicy.Options); + + /** + * Returns `true` if the response can be stored in a cache. + * If it's `false` then you MUST NOT store either the request or the response. + */ + storable(): boolean; + + /** + * This is the most important method. Use this method to check whether the cached response is still fresh + * in the context of the new request. + * + * If it returns `true`, then the given `request` matches the original response this cache policy has been + * created with, and the response can be reused without contacting the server. Note that the old response + * can't be returned without being updated, see `responseHeaders()`. + * + * If it returns `false`, then the response may not be matching at all (e.g. it's for a different URL or method), + * or may require to be refreshed first (see `revalidationHeaders()`). + */ + satisfiesWithoutRevalidation(newRequest: CachePolicy.Request): boolean; + + /** + * Returns updated, filtered set of response headers to return to clients receiving the cached response. + * This function is necessary, because proxies MUST always remove hop-by-hop headers (such as `TE` and `Connection`) + * and update response's `Age` to avoid doubling cache time. + * + * @example + * cachedResponse.headers = cachePolicy.responseHeaders(cachedResponse); + */ + responseHeaders(): CachePolicy.Headers; + + /** + * Returns approximate time in milliseconds until the response becomes stale (i.e. not fresh). + * + * After that time (when `timeToLive() <= 0`) the response might not be usable without revalidation. However, + * there are exceptions, e.g. a client can explicitly allow stale responses, so always check with + * `satisfiesWithoutRevalidation()`. + */ + timeToLive(): number; + + /** + * Chances are you'll want to store the `CachePolicy` object along with the cached response. + * `obj = policy.toObject()` gives a plain JSON-serializable object. + */ + toObject(): CachePolicy.CachePolicyObject; + + /** + * `policy = CachePolicy.fromObject(obj)` creates an instance from object created by `toObject()`. + */ + static fromObject(obj: CachePolicy.CachePolicyObject): CachePolicy; + + /** + * Returns updated, filtered set of request headers to send to the origin server to check if the cached + * response can be reused. These headers allow the origin server to return status 304 indicating the + * response is still fresh. All headers unrelated to caching are passed through as-is. + * + * Use this method when updating cache from the origin server. + * + * @example + * updateRequest.headers = cachePolicy.revalidationHeaders(updateRequest); + */ + revalidationHeaders(newRequest: CachePolicy.Request): CachePolicy.Headers; + + /** + * Use this method to update the cache after receiving a new response from the origin server. + */ + revalidatedPolicy( + revalidationRequest: CachePolicy.Request, + revalidationResponse: CachePolicy.Response + ): CachePolicy.RevalidationPolicy; +} + +declare namespace CachePolicy { + interface Request { + url?: string | undefined; + method?: string | undefined; + headers: Headers; + } + + interface Response { + status?: number | undefined; + headers: Headers; + } + + interface Options { + /** + * If `true`, then the response is evaluated from a perspective of a shared cache (i.e. `private` is not + * cacheable and `s-maxage` is respected). If `false`, then the response is evaluated from a perspective + * of a single-user cache (i.e. `private` is cacheable and `s-maxage` is ignored). + * `true` is recommended for HTTP clients. + * @default true + */ + shared?: boolean | undefined; + /** + * A fraction of response's age that is used as a fallback cache duration. The default is 0.1 (10%), + * e.g. if a file hasn't been modified for 100 days, it'll be cached for 100*0.1 = 10 days. + * @default 0.1 + */ + cacheHeuristic?: number | undefined; + /** + * A number of milliseconds to assume as the default time to cache responses with `Cache-Control: immutable`. + * Note that [per RFC](https://httpwg.org/specs/rfc8246.html#the-immutable-cache-control-extension) + * these can become stale, so `max-age` still overrides the default. + * @default 24*3600*1000 (24h) + */ + immutableMinTimeToLive?: number | undefined; + /** + * If `true`, common anti-cache directives will be completely ignored if the non-standard `pre-check` + * and `post-check` directives are present. These two useless directives are most commonly found + * in bad StackOverflow answers and PHP's "session limiter" defaults. + * @default false + */ + ignoreCargoCult?: boolean | undefined; + /** + * If `false`, then server's `Date` header won't be used as the base for `max-age`. This is against the RFC, + * but it's useful if you want to cache responses with very short `max-age`, but your local clock + * is not exactly in sync with the server's. + * @default true + */ + trustServerDate?: boolean | undefined; + } + + interface CachePolicyObject { + v: number; + t: number; + sh: boolean; + ch: number; + imm: number; + st: number; + resh: Headers; + rescc: { [key: string]: string }; + m: string; + u?: string | undefined; + h?: string | undefined; + a: boolean; + reqh: Headers | null; + reqcc: { [key: string]: string }; + } + + interface Headers { + [header: string]: string | string[] | undefined; + } + + interface RevalidationPolicy { + /** + * A new `CachePolicy` with HTTP headers updated from `revalidationResponse`. You can always replace + * the old cached `CachePolicy` with the new one. + */ + policy: CachePolicy; + /** + * Boolean indicating whether the response body has changed. + * + * - If `false`, then a valid 304 Not Modified response has been received, and you can reuse the old + * cached response body. + * - If `true`, you should use new response's body (if present), or make another request to the origin + * server without any conditional headers (i.e. don't use `revalidationHeaders()` this time) to get + * the new resource. + */ + modified: boolean; + matches: boolean; + } +} diff --git a/includes/external/addressbook/node_modules/@types/http-cache-semantics/package.json b/includes/external/addressbook/node_modules/@types/http-cache-semantics/package.json new file mode 100755 index 0000000..58e08c0 --- /dev/null +++ b/includes/external/addressbook/node_modules/@types/http-cache-semantics/package.json @@ -0,0 +1,25 @@ +{ + "name": "@types/http-cache-semantics", + "version": "4.0.1", + "description": "TypeScript definitions for http-cache-semantics", + "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/http-cache-semantics", + "license": "MIT", + "contributors": [ + { + "name": "BendingBender", + "url": "https://github.com/BendingBender", + "githubUsername": "BendingBender" + } + ], + "main": "", + "types": "index.d.ts", + "repository": { + "type": "git", + "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git", + "directory": "types/http-cache-semantics" + }, + "scripts": {}, + "dependencies": {}, + "typesPublisherContentHash": "9ecb3137d8c0ede7c06f5d90c7d4759e560a26effb8846bc51a99b63f03dd2d1", + "typeScriptVersion": "3.6" +} \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/boolbase/README.md b/includes/external/addressbook/node_modules/boolbase/README.md new file mode 100644 index 0000000..85eefa5 --- /dev/null +++ b/includes/external/addressbook/node_modules/boolbase/README.md @@ -0,0 +1,10 @@ +#boolbase +This very simple module provides two basic functions, one that always returns true (`trueFunc`) and one that always returns false (`falseFunc`). + +###WTF? + +By having only a single instance of these functions around, it's possible to do some nice optimizations. Eg. [`CSSselect`](https://github.com/fb55/CSSselect) uses these functions to determine whether a selector won't match any elements. If that's the case, the DOM doesn't even have to be touched. + +###And why is this a separate module? + +I'm trying to modularize `CSSselect` and most modules depend on these functions. IMHO, having a separate module is the easiest solution to this problem. \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/boolbase/index.js b/includes/external/addressbook/node_modules/boolbase/index.js new file mode 100644 index 0000000..8799fd9 --- /dev/null +++ b/includes/external/addressbook/node_modules/boolbase/index.js @@ -0,0 +1,8 @@ +module.exports = { + trueFunc: function trueFunc(){ + return true; + }, + falseFunc: function falseFunc(){ + return false; + } +}; \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/boolbase/package.json b/includes/external/addressbook/node_modules/boolbase/package.json new file mode 100644 index 0000000..78330a8 --- /dev/null +++ b/includes/external/addressbook/node_modules/boolbase/package.json @@ -0,0 +1,23 @@ +{ + "name": "boolbase", + "version": "1.0.0", + "description": "two functions: One that returns true, one that returns false", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "https://github.com/fb55/boolbase" + }, + "keywords": [ + "boolean", + "function" + ], + "author": "Felix Boehm ", + "license": "ISC", + "bugs": { + "url": "https://github.com/fb55/boolbase/issues" + }, + "homepage": "https://github.com/fb55/boolbase" +} diff --git a/includes/external/addressbook/node_modules/cacheable-lookup/LICENSE b/includes/external/addressbook/node_modules/cacheable-lookup/LICENSE new file mode 100644 index 0000000..92498ed --- /dev/null +++ b/includes/external/addressbook/node_modules/cacheable-lookup/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 Szymon Marczak + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/includes/external/addressbook/node_modules/cacheable-lookup/README.md b/includes/external/addressbook/node_modules/cacheable-lookup/README.md new file mode 100644 index 0000000..d04be69 --- /dev/null +++ b/includes/external/addressbook/node_modules/cacheable-lookup/README.md @@ -0,0 +1,245 @@ +# cacheable-lookup + +> A cacheable [`dns.lookup(…)`](https://nodejs.org/api/dns.html#dns_dns_lookup_hostname_options_callback) that respects TTL :tada: + +[![Node CI](https://github.com/szmarczak/cacheable-lookup/workflows/Node%20CI/badge.svg)](https://github.com/szmarczak/cacheable-lookup/actions) +[![codecov](https://codecov.io/gh/szmarczak/cacheable-lookup/branch/master/graph/badge.svg)](https://codecov.io/gh/szmarczak/cacheable-lookup) +[![npm](https://img.shields.io/npm/dm/cacheable-lookup.svg)](https://www.npmjs.com/package/cacheable-lookup) +[![install size](https://packagephobia.now.sh/badge?p=cacheable-lookup)](https://packagephobia.now.sh/result?p=cacheable-lookup) + +Making lots of HTTP requests? You can save some time by caching DNS lookups :zap: + +## Usage + +### Using the `lookup` option + +```js +import http from 'node:http'; +import CacheableLookup from 'cacheable-lookup'; + +const cacheable = new CacheableLookup(); + +http.get('http://example.com', {lookup: cacheable.lookup}, response => { + // Handle the response here +}); +``` + +### Attaching CacheableLookup to an Agent + +```js +import http from 'node:http'; +import https from 'node:https'; +import CacheableLookup from 'cacheable-lookup'; + +const cacheable = new CacheableLookup(); + +cacheable.install(http.globalAgent); +cacheable.install(https.globalAgent); + +http.get('http://example.com', response => { + // Handle the response here +}); +``` + +## API + +### new CacheableLookup(options) + +Returns a new instance of `CacheableLookup`. + +#### options + +Type: `object`\ +Default: `{}` + +Options used to cache the DNS lookups. + +##### cache + +Type: `Map` | [`Keyv`](https://github.com/lukechilds/keyv/)\ +Default: `new Map()` + +Custom cache instance. If `undefined`, it will create a new one. + +**Note**: If you decide to use Keyv instead of the native implementation, the performance will drop by 10x. Memory leaks may occur as it doesn't provide any way to remove all the deprecated values at once. + +**Tip**: [`QuickLRU`](https://github.com/sindresorhus/quick-lru) is fully compatible with the Map API, you can use it to limit the amount of cached entries. Example: + +```js +import http from 'node:http'; +import CacheableLookup from 'cacheable-lookup'; +import QuickLRU from 'quick-lru'; + +const cacheable = new CacheableLookup({ + cache: new QuickLRU({maxSize: 1000}) +}); + +http.get('http://example.com', {lookup: cacheable.lookup}, response => { + // Handle the response here +}); +``` + +##### options.maxTtl + +Type: `number`\ +Default: `Infinity` + +The maximum lifetime of the entries received from the specifed DNS server (TTL in seconds). + +If set to `0`, it will make a new DNS query each time. + +**Pro Tip**: This shouldn't be lower than your DNS server response time in order to prevent bottlenecks. For example, if you use Cloudflare, this value should be greater than `0.01`. + +##### options.fallbackDuration + +Type: `number`\ +Default: `3600` (1 hour) + +When the DNS server responds with `ENOTFOUND` or `ENODATA` and the OS reports that the entry is available, it will use `dns.lookup(...)` directly for the requested hostnames for the specified amount of time (in seconds). + +**Note**: You should avoid setting this to `0` unless the provided DNS servers' database is limited to few domains. + +##### options.errorTtl + +Type: `number`\ +Default: `0.15` + +The time how long it needs to remember queries that threw `ENOTFOUND` or `ENODATA` (TTL in seconds). + +**Note**: This option is independent, `options.maxTtl` does not affect this. + +**Pro Tip**: This shouldn't be lower than your DNS server response time in order to prevent bottlenecks. For example, if you use Cloudflare, this value should be greater than `0.01`. + +##### options.resolver + +Type: `dns.Resolver | dns.promises.Resolver`\ +Default: [`new dns.promises.Resolver()`](https://nodejs.org/api/dns.html#dns_class_dns_resolver) + +An instance of [DNS Resolver](https://nodejs.org/api/dns.html#dns_class_dns_resolver) used to make DNS queries. + +##### options.lookup + +Type: `Function`\ +Default: [`dns.lookup`](https://nodejs.org/api/dns.html#dns_dns_lookup_hostname_options_callback) + +The fallback function to use when the DNS server responds with `ENOTFOUND` or `ENODATA`. + +If you don't query internal hostnames (such as `localhost`, `database.local` etc.), it is strongly recommended to set this to `false`. + +### Entry object + +Type: `object` + +#### address + +Type: `string` + +The IP address (can be an IPv4 or IPv6 address). + +#### family + +Type: `number` + +The IP family (`4` or `6`). + +##### expires + +Type: `number` + +**Note**: This is not present when falling back to `dns.lookup(...)`! + +The timestamp (`Date.now() + ttl * 1000`) when the entry expires. + +#### ttl + +**Note**: This is not present when falling back to `dns.lookup(...)`! + +The time in seconds for its lifetime. + +#### source + +**Note**: This is not present when falling back to `dns.lookup(...)`! + +Whether this entry was loaded from the cache or came from a query (`cache` or `query`) + +### Entry object (callback-style) + +When `options.all` is `false`, then `callback(error, address, family, expires, ttl)` is called.\ +When `options.all` is `true`, then `callback(error, entries)` is called. + +### CacheableLookup instance + +#### servers + +Type: `Array` + +The DNS servers used to make queries. Can be overridden - doing so will clear the cache. + +#### [lookup(hostname, options, callback)](https://nodejs.org/api/dns.html#dns_dns_lookup_hostname_options_callback) + +#### lookupAsync(hostname, options) + +The asynchronous version of `dns.lookup(…)`. + +Returns an [entry object](#entry-object).\ +If `options.all` is true, returns an array of entry objects. + +##### hostname + +Type: `string` + +##### options + +Type: `object` + +The same as the [`dns.lookup(…)`](https://nodejs.org/api/dns.html#dns_dns_lookup_hostname_options_callback) options. + +#### query(hostname) + +An asynchronous function which returns cached DNS lookup entries.\ +This is the base for `lookupAsync(hostname, options)` and `lookup(hostname, options, callback)`. + +**Note**: This function has no options. + +Returns an array of objects with `address`, `family`, `ttl` and `expires` properties. + +#### queryAndCache(hostname) + +An asynchronous function which makes two DNS queries: A and AAAA. The result is cached.\ +This is used by `query(hostname)` if no entry in the database is present. + +Returns an array of objects with `address`, `family`, `ttl` and `expires` properties. + +#### updateInterfaceInfo() + +Updates interface info. For example, you need to run this when you plug or unplug your WiFi driver. + +**Note:** Running `updateInterfaceInfo()` will trigger `clear()` only on network interface removal. + +#### clear(hostname?) + +Clears the cache for the given hostname. If the hostname argument is not present, the entire cache will be emptied. + +## High performance + +Performed on: +- Query: `example.com` +- CPU: i7-7700k +- CPU governor: performance + +``` +CacheableLookup#lookupAsync x 2,896,251 ops/sec ±1.07% (85 runs sampled) +CacheableLookup#lookupAsync.all x 2,842,664 ops/sec ±1.11% (88 runs sampled) +CacheableLookup#lookupAsync.all.ADDRCONFIG x 2,598,283 ops/sec ±1.21% (88 runs sampled) +CacheableLookup#lookup x 2,565,913 ops/sec ±1.56% (85 runs sampled) +CacheableLookup#lookup.all x 2,609,039 ops/sec ±1.01% (86 runs sampled) +CacheableLookup#lookup.all.ADDRCONFIG x 2,416,242 ops/sec ±0.89% (85 runs sampled) +dns#lookup x 7,272 ops/sec ±0.36% (86 runs sampled) +dns#lookup.all x 7,249 ops/sec ±0.40% (86 runs sampled) +dns#lookup.all.ADDRCONFIG x 5,693 ops/sec ±0.28% (85 runs sampled) +Fastest is CacheableLookup#lookupAsync.all +``` + +## Related + +- [cacheable-request](https://github.com/lukechilds/cacheable-request) - Wrap native HTTP requests with RFC compliant cache support diff --git a/includes/external/addressbook/node_modules/cacheable-lookup/index.d.ts b/includes/external/addressbook/node_modules/cacheable-lookup/index.d.ts new file mode 100644 index 0000000..e805b70 --- /dev/null +++ b/includes/external/addressbook/node_modules/cacheable-lookup/index.d.ts @@ -0,0 +1,144 @@ +import {Resolver, promises as dnsPromises, lookup} from 'dns'; +import {Agent} from 'http'; + +type AsyncResolver = dnsPromises.Resolver; + +export type IPFamily = 4 | 6; +export type EntrySource = 'query' | 'cache'; + +type TPromise = T | Promise; + +export interface CacheInstance { + set(hostname: string, entries: EntryObject[], ttl: number): TPromise; + get(hostname: string): TPromise; + delete(hostname: string): TPromise; + clear(): TPromise; +} + +export interface Options { + /** + * Custom cache instance. If `undefined`, it will create a new one. + * @default undefined + */ + cache?: CacheInstance; + /** + * Limits the cache time (TTL). If set to `0`, it will make a new DNS query each time. + * @default Infinity + */ + maxTtl?: number; + /** + * DNS Resolver used to make DNS queries. + * @default new dns.promises.Resolver() + */ + resolver?: Resolver | AsyncResolver; + /** + * When the DNS server responds with `ENOTFOUND` or `ENODATA` and the OS reports that the entry is available, + * it will use `dns.lookup(...)` directly for the requested hostnames for the specified amount of time (in seconds). + * + * If you don't query internal hostnames (such as `localhost`, `database.local` etc.), + * it is strongly recommended to set this value to `0`. + * @default 3600 + */ + fallbackDuration?: number; + /** + * The time how long it needs to remember failed queries (TTL in seconds). + * + * **Note**: This option is independent, `options.maxTtl` does not affect this. + * @default 0.15 + */ + errorTtl?: number; + /** + * The fallback function to use when the DNS server responds with `ENOTFOUND` or `ENODATA`. + * + * **Note**: This has no effect if the `fallbackDuration` option is less than `1`. + * @default dns.lookup + */ + lookup?: typeof lookup | false; +} + +export interface EntryObject { + /** + * The IP address (can be an IPv4 or IPv5 address). + */ + readonly address: string; + /** + * The IP family. + */ + readonly family: IPFamily; + /** + * The original TTL. + */ + readonly ttl?: number; + /** + * The expiration timestamp. + */ + readonly expires?: number; + /** + * Whether this entry comes from the cache or a query + */ + readonly source?: EntrySource; +} + +export interface LookupOptions { + /** + * One or more supported getaddrinfo flags. Multiple flags may be passed by bitwise ORing their values. + */ + hints?: number; + /** + * The record family. Must be `4` or `6`. IPv4 and IPv6 addresses are both returned by default. + */ + family?: IPFamily; + /** + * When `true`, the callback returns all resolved addresses in an array. Otherwise, returns a single address. + * @default false + */ + all?: boolean; +} + +export default class CacheableLookup { + constructor(options?: Options); + /** + * The DNS servers used to make queries. Can be overridden - doing so will clear the cache. + */ + servers: string[]; + /** + * @see https://nodejs.org/api/dns.html#dns_dns_lookup_hostname_options_callback + */ + lookup(hostname: string, family: IPFamily, callback: (error: NodeJS.ErrnoException | null, address: string, family: IPFamily) => void): void; + lookup(hostname: string, callback: (error: NodeJS.ErrnoException | null, address: string, family: IPFamily) => void): void; + lookup(hostname: string, options: LookupOptions & {all: true}, callback: (error: NodeJS.ErrnoException | null, result: ReadonlyArray) => void): void; + lookup(hostname: string, options: LookupOptions, callback: (error: NodeJS.ErrnoException | null, address: string, family: IPFamily) => void): void; + /** + * The asynchronous version of `dns.lookup(…)`. + */ + lookupAsync(hostname: string, options: LookupOptions & {all: true}): Promise>; + lookupAsync(hostname: string, options: LookupOptions): Promise; + lookupAsync(hostname: string): Promise; + lookupAsync(hostname: string, family: IPFamily): Promise; + /** + * An asynchronous function which returns cached DNS lookup entries. This is the base for `lookupAsync(hostname, options)` and `lookup(hostname, options, callback)`. + */ + query(hostname: string): Promise>; + /** + * An asynchronous function which makes a new DNS lookup query and updates the database. This is used by `query(hostname, family)` if no entry in the database is present. Returns an array of objects with `address`, `family`, `ttl` and `expires` properties. + */ + queryAndCache(hostname: string): Promise>; + /** + * Attaches itself to an Agent instance. + */ + install(agent: Agent): void; + /** + * Removes itself from an Agent instance. + */ + uninstall(agent: Agent): void; + /** + * Updates interface info. For example, you need to run this when you plug or unplug your WiFi driver. + * + * **Note:** Running `updateInterfaceInfo()` will trigger `clear()` only on network interface removal. + */ + updateInterfaceInfo(): void; + /** + * Clears the cache for the given hostname. If the hostname argument is not present, the entire cache will be emptied. + */ + clear(hostname?: string): void; +} diff --git a/includes/external/addressbook/node_modules/cacheable-lookup/package.json b/includes/external/addressbook/node_modules/cacheable-lookup/package.json new file mode 100644 index 0000000..d3d696a --- /dev/null +++ b/includes/external/addressbook/node_modules/cacheable-lookup/package.json @@ -0,0 +1,61 @@ +{ + "name": "cacheable-lookup", + "version": "7.0.0", + "description": "A cacheable dns.lookup(…) that respects TTL", + "engines": { + "node": ">=14.16" + }, + "files": [ + "source", + "index.d.ts" + ], + "type": "module", + "exports": { + "types": "./index.d.ts", + "default": "./source/index.js" + }, + "scripts": { + "//test": "xo && nyc --reporter=lcovonly --reporter=text ava && tsd", + "test": "tsd" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/szmarczak/cacheable-lookup.git" + }, + "keywords": [ + "dns", + "lookup", + "cacheable", + "ttl" + ], + "author": "Szymon Marczak", + "license": "MIT", + "bugs": { + "url": "https://github.com/szmarczak/cacheable-lookup/issues" + }, + "homepage": "https://github.com/szmarczak/cacheable-lookup#readme", + "devDependencies": { + "@types/keyv": "^3.1.1", + "ava": "^4.3.3", + "benchmark": "^2.1.4", + "coveralls": "^3.0.9", + "keyv": "^4.0.0", + "nyc": "^15.0.0", + "quibble": "^0.6.14", + "quick-lru": "^5.1.0", + "tsd": "^0.11.0", + "xo": "^0.25.3" + }, + "ava": { + "nodeArguments": [ + "--loader=quibble" + ] + }, + "xo": { + "rules": { + "unicorn/import-index": "off", + "import/extensions": "off", + "import/no-useless-path-segments": "off" + } + } +} diff --git a/includes/external/addressbook/node_modules/cacheable-lookup/source/index.js b/includes/external/addressbook/node_modules/cacheable-lookup/source/index.js new file mode 100644 index 0000000..2accc60 --- /dev/null +++ b/includes/external/addressbook/node_modules/cacheable-lookup/source/index.js @@ -0,0 +1,452 @@ +import { + V4MAPPED, + ADDRCONFIG, + ALL, + promises as dnsPromises, + lookup as dnsLookup +} from 'node:dns'; +import {promisify} from 'node:util'; +import os from 'node:os'; + +const {Resolver: AsyncResolver} = dnsPromises; + +const kCacheableLookupCreateConnection = Symbol('cacheableLookupCreateConnection'); +const kCacheableLookupInstance = Symbol('cacheableLookupInstance'); +const kExpires = Symbol('expires'); + +const supportsALL = typeof ALL === 'number'; + +const verifyAgent = agent => { + if (!(agent && typeof agent.createConnection === 'function')) { + throw new Error('Expected an Agent instance as the first argument'); + } +}; + +const map4to6 = entries => { + for (const entry of entries) { + if (entry.family === 6) { + continue; + } + + entry.address = `::ffff:${entry.address}`; + entry.family = 6; + } +}; + +const getIfaceInfo = () => { + let has4 = false; + let has6 = false; + + for (const device of Object.values(os.networkInterfaces())) { + for (const iface of device) { + if (iface.internal) { + continue; + } + + if (iface.family === 'IPv6') { + has6 = true; + } else { + has4 = true; + } + + if (has4 && has6) { + return {has4, has6}; + } + } + } + + return {has4, has6}; +}; + +const isIterable = map => { + return Symbol.iterator in map; +}; + +const ignoreNoResultErrors = dnsPromise => { + return dnsPromise.catch(error => { + if ( + error.code === 'ENODATA' || + error.code === 'ENOTFOUND' || + error.code === 'ENOENT' // Windows: name exists, but not this record type + ) { + return []; + } + + throw error; + }); +}; + +const ttl = {ttl: true}; +const all = {all: true}; +const all4 = {all: true, family: 4}; +const all6 = {all: true, family: 6}; + +export default class CacheableLookup { + constructor({ + cache = new Map(), + maxTtl = Infinity, + fallbackDuration = 3600, + errorTtl = 0.15, + resolver = new AsyncResolver(), + lookup = dnsLookup + } = {}) { + this.maxTtl = maxTtl; + this.errorTtl = errorTtl; + + this._cache = cache; + this._resolver = resolver; + this._dnsLookup = lookup && promisify(lookup); + this.stats = { + cache: 0, + query: 0 + }; + + if (this._resolver instanceof AsyncResolver) { + this._resolve4 = this._resolver.resolve4.bind(this._resolver); + this._resolve6 = this._resolver.resolve6.bind(this._resolver); + } else { + this._resolve4 = promisify(this._resolver.resolve4.bind(this._resolver)); + this._resolve6 = promisify(this._resolver.resolve6.bind(this._resolver)); + } + + this._iface = getIfaceInfo(); + + this._pending = {}; + this._nextRemovalTime = false; + this._hostnamesToFallback = new Set(); + + this.fallbackDuration = fallbackDuration; + + if (fallbackDuration > 0) { + const interval = setInterval(() => { + this._hostnamesToFallback.clear(); + }, fallbackDuration * 1000); + + /* istanbul ignore next: There is no `interval.unref()` when running inside an Electron renderer */ + if (interval.unref) { + interval.unref(); + } + + this._fallbackInterval = interval; + } + + this.lookup = this.lookup.bind(this); + this.lookupAsync = this.lookupAsync.bind(this); + } + + set servers(servers) { + this.clear(); + + this._resolver.setServers(servers); + } + + get servers() { + return this._resolver.getServers(); + } + + lookup(hostname, options, callback) { + if (typeof options === 'function') { + callback = options; + options = {}; + } else if (typeof options === 'number') { + options = { + family: options + }; + } + + if (!callback) { + throw new Error('Callback must be a function.'); + } + + // eslint-disable-next-line promise/prefer-await-to-then + this.lookupAsync(hostname, options).then(result => { + if (options.all) { + callback(null, result); + } else { + callback(null, result.address, result.family, result.expires, result.ttl, result.source); + } + }, callback); + } + + async lookupAsync(hostname, options = {}) { + if (typeof options === 'number') { + options = { + family: options + }; + } + + let cached = await this.query(hostname); + + if (options.family === 6) { + const filtered = cached.filter(entry => entry.family === 6); + + if (options.hints & V4MAPPED) { + if ((supportsALL && options.hints & ALL) || filtered.length === 0) { + map4to6(cached); + } else { + cached = filtered; + } + } else { + cached = filtered; + } + } else if (options.family === 4) { + cached = cached.filter(entry => entry.family === 4); + } + + if (options.hints & ADDRCONFIG) { + const {_iface} = this; + cached = cached.filter(entry => entry.family === 6 ? _iface.has6 : _iface.has4); + } + + if (cached.length === 0) { + const error = new Error(`cacheableLookup ENOTFOUND ${hostname}`); + error.code = 'ENOTFOUND'; + error.hostname = hostname; + + throw error; + } + + if (options.all) { + return cached; + } + + return cached[0]; + } + + async query(hostname) { + let source = 'cache'; + let cached = await this._cache.get(hostname); + + if (cached) { + this.stats.cache++; + } + + if (!cached) { + const pending = this._pending[hostname]; + if (pending) { + this.stats.cache++; + cached = await pending; + } else { + source = 'query'; + const newPromise = this.queryAndCache(hostname); + this._pending[hostname] = newPromise; + this.stats.query++; + try { + cached = await newPromise; + } finally { + delete this._pending[hostname]; + } + } + } + + cached = cached.map(entry => { + return {...entry, source}; + }); + + return cached; + } + + async _resolve(hostname) { + // ANY is unsafe as it doesn't trigger new queries in the underlying server. + const [A, AAAA] = await Promise.all([ + ignoreNoResultErrors(this._resolve4(hostname, ttl)), + ignoreNoResultErrors(this._resolve6(hostname, ttl)) + ]); + + let aTtl = 0; + let aaaaTtl = 0; + let cacheTtl = 0; + + const now = Date.now(); + + for (const entry of A) { + entry.family = 4; + entry.expires = now + (entry.ttl * 1000); + + aTtl = Math.max(aTtl, entry.ttl); + } + + for (const entry of AAAA) { + entry.family = 6; + entry.expires = now + (entry.ttl * 1000); + + aaaaTtl = Math.max(aaaaTtl, entry.ttl); + } + + if (A.length > 0) { + if (AAAA.length > 0) { + cacheTtl = Math.min(aTtl, aaaaTtl); + } else { + cacheTtl = aTtl; + } + } else { + cacheTtl = aaaaTtl; + } + + return { + entries: [ + ...A, + ...AAAA + ], + cacheTtl + }; + } + + async _lookup(hostname) { + try { + const [A, AAAA] = await Promise.all([ + // Passing {all: true} doesn't return all IPv4 and IPv6 entries. + // See https://github.com/szmarczak/cacheable-lookup/issues/42 + ignoreNoResultErrors(this._dnsLookup(hostname, all4)), + ignoreNoResultErrors(this._dnsLookup(hostname, all6)) + ]); + + return { + entries: [ + ...A, + ...AAAA + ], + cacheTtl: 0 + }; + } catch { + return { + entries: [], + cacheTtl: 0 + }; + } + } + + async _set(hostname, data, cacheTtl) { + if (this.maxTtl > 0 && cacheTtl > 0) { + cacheTtl = Math.min(cacheTtl, this.maxTtl) * 1000; + data[kExpires] = Date.now() + cacheTtl; + + try { + await this._cache.set(hostname, data, cacheTtl); + } catch (error) { + this.lookupAsync = async () => { + const cacheError = new Error('Cache Error. Please recreate the CacheableLookup instance.'); + cacheError.cause = error; + + throw cacheError; + }; + } + + if (isIterable(this._cache)) { + this._tick(cacheTtl); + } + } + } + + async queryAndCache(hostname) { + if (this._hostnamesToFallback.has(hostname)) { + return this._dnsLookup(hostname, all); + } + + let query = await this._resolve(hostname); + + if (query.entries.length === 0 && this._dnsLookup) { + query = await this._lookup(hostname); + + if (query.entries.length !== 0 && this.fallbackDuration > 0) { + // Use `dns.lookup(...)` for that particular hostname + this._hostnamesToFallback.add(hostname); + } + } + + const cacheTtl = query.entries.length === 0 ? this.errorTtl : query.cacheTtl; + await this._set(hostname, query.entries, cacheTtl); + + return query.entries; + } + + _tick(ms) { + const nextRemovalTime = this._nextRemovalTime; + + if (!nextRemovalTime || ms < nextRemovalTime) { + clearTimeout(this._removalTimeout); + + this._nextRemovalTime = ms; + + this._removalTimeout = setTimeout(() => { + this._nextRemovalTime = false; + + let nextExpiry = Infinity; + + const now = Date.now(); + + for (const [hostname, entries] of this._cache) { + const expires = entries[kExpires]; + + if (now >= expires) { + this._cache.delete(hostname); + } else if (expires < nextExpiry) { + nextExpiry = expires; + } + } + + if (nextExpiry !== Infinity) { + this._tick(nextExpiry - now); + } + }, ms); + + /* istanbul ignore next: There is no `timeout.unref()` when running inside an Electron renderer */ + if (this._removalTimeout.unref) { + this._removalTimeout.unref(); + } + } + } + + install(agent) { + verifyAgent(agent); + + if (kCacheableLookupCreateConnection in agent) { + throw new Error('CacheableLookup has been already installed'); + } + + agent[kCacheableLookupCreateConnection] = agent.createConnection; + agent[kCacheableLookupInstance] = this; + + agent.createConnection = (options, callback) => { + if (!('lookup' in options)) { + options.lookup = this.lookup; + } + + return agent[kCacheableLookupCreateConnection](options, callback); + }; + } + + uninstall(agent) { + verifyAgent(agent); + + if (agent[kCacheableLookupCreateConnection]) { + if (agent[kCacheableLookupInstance] !== this) { + throw new Error('The agent is not owned by this CacheableLookup instance'); + } + + agent.createConnection = agent[kCacheableLookupCreateConnection]; + + delete agent[kCacheableLookupCreateConnection]; + delete agent[kCacheableLookupInstance]; + } + } + + updateInterfaceInfo() { + const {_iface} = this; + + this._iface = getIfaceInfo(); + + if ((_iface.has4 && !this._iface.has4) || (_iface.has6 && !this._iface.has6)) { + this._cache.clear(); + } + } + + clear(hostname) { + if (hostname) { + this._cache.delete(hostname); + return; + } + + this._cache.clear(); + } +} diff --git a/includes/external/addressbook/node_modules/cacheable-request/LICENSE b/includes/external/addressbook/node_modules/cacheable-request/LICENSE new file mode 100644 index 0000000..a9e3a17 --- /dev/null +++ b/includes/external/addressbook/node_modules/cacheable-request/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2017-2021 Luke Childs +Copyright (c) 2022 Jared Wray + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/includes/external/addressbook/node_modules/cacheable-request/README.md b/includes/external/addressbook/node_modules/cacheable-request/README.md new file mode 100644 index 0000000..b02b7b4 --- /dev/null +++ b/includes/external/addressbook/node_modules/cacheable-request/README.md @@ -0,0 +1,334 @@ +# cacheable-request + +> Wrap native HTTP requests with RFC compliant cache support + +[![tests](https://github.com/jaredwray/cacheable-request/actions/workflows/tests.yaml/badge.svg)](https://github.com/jaredwray/cacheable-request/actions/workflows/tests.yaml) +[![codecov](https://codecov.io/gh/jaredwray/cacheable-request/branch/master/graph/badge.svg?token=LDLaqe4PsI)](https://codecov.io/gh/jaredwray/cacheable-request) +[![npm](https://img.shields.io/npm/dm/cacheable-request.svg)](https://www.npmjs.com/package/cacheable-request) +[![npm](https://img.shields.io/npm/v/cacheable-request.svg)](https://www.npmjs.com/package/cacheable-request) + +[RFC 7234](http://httpwg.org/specs/rfc7234.html) compliant HTTP caching for native Node.js HTTP/HTTPS requests. Caching works out of the box in memory or is easily pluggable with a wide range of storage adapters. + +**Note:** This is a low level wrapper around the core HTTP modules, it's not a high level request library. + +# Table of Contents +* [Latest Changes](#latest-changes) +* [Features](#features) +* [Install and Usage](#install-and-usage) +* [Storage Adapters](#storage-adapters) +* [API](#api) +* [Using Hooks](#using-hooks) +* [Contributing](#contributing) +* [Ask a Question](#ask-a-question) +* [License](#license) (MIT) + +# Latest Changes + +## Breaking Changes with v10.0.0 +This release contains breaking changes. This is the new way to use this package. + +### Usage Before v10 +```js +import http from 'http'; +import CacheableRequest from 'cacheable-request'; + +// Then instead of +const req = http.request('http://example.com', cb); +req.end(); + +// You can do +const cacheableRequest = new CacheableRequest(http.request); +const cacheReq = cacheableRequest('http://example.com', cb); +cacheReq.on('request', req => req.end()); +// Future requests to 'example.com' will be returned from cache if still valid + +// You pass in any other http.request API compatible method to be wrapped with cache support: +const cacheableRequest = new CacheableRequest(https.request); +const cacheableRequest = new CacheableRequest(electron.net); +``` + +### Usage After v10.1.0 +```js + +import CacheableRequest from 'cacheable-request'; + +// Now You can do +const cacheableRequest = new CacheableRequest(http.request).request(); +const cacheReq = cacheableRequest('http://example.com', cb); +cacheReq.on('request', req => req.end()); +// Future requests to 'example.com' will be returned from cache if still valid + +// You pass in any other http.request API compatible method to be wrapped with cache support: +const cacheableRequest = new CacheableRequest(https.request).request(); +const cacheableRequest = new CacheableRequest(electron.net).request(); +``` + +The biggest change is that when you do a `new` CacheableRequest you now want to call `request` method will give you the instance to use. + +```diff +- const cacheableRequest = new CacheableRequest(http.request); ++ const cacheableRequest = new CacheableRequest(http.request).request(); +``` + +### ESM Support in version 9 and higher. + +We are now using pure esm support in our package. If you need to use commonjs you can use v8 or lower. To learn more about using ESM please read this from `sindresorhus`: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c + +## Features + +- Only stores cacheable responses as defined by RFC 7234 +- Fresh cache entries are served directly from cache +- Stale cache entries are revalidated with `If-None-Match`/`If-Modified-Since` headers +- 304 responses from revalidation requests use cached body +- Updates `Age` header on cached responses +- Can completely bypass cache on a per request basis +- In memory cache by default +- Official support for Redis, Memcache, Etcd, MongoDB, SQLite, PostgreSQL and MySQL storage adapters +- Easily plug in your own or third-party storage adapters +- If DB connection fails, cache is automatically bypassed ([disabled by default](#optsautomaticfailover)) +- Adds cache support to any existing HTTP code with minimal changes +- Uses [http-cache-semantics](https://github.com/pornel/http-cache-semantics) internally for HTTP RFC 7234 compliance + +## Install and Usage + +```shell +npm install cacheable-request +``` + +```js +import http from 'http'; +import CacheableRequest from 'cacheable-request'; + +// Then instead of +const req = http.request('http://example.com', cb); +req.end(); + +// You can do +const cacheableRequest = new CacheableRequest(http.request).createCacheableRequest(); +const cacheReq = cacheableRequest('http://example.com', cb); +cacheReq.on('request', req => req.end()); +// Future requests to 'example.com' will be returned from cache if still valid + +// You pass in any other http.request API compatible method to be wrapped with cache support: +const cacheableRequest = new CacheableRequest(https.request).createCacheableRequest(); +const cacheableRequest = new CacheableRequest(electron.net).createCacheableRequest(); +``` + +## Storage Adapters + +`cacheable-request` uses [Keyv](https://github.com/jaredwray/keyv) to support a wide range of storage adapters. + +For example, to use Redis as a cache backend, you just need to install the official Redis Keyv storage adapter: + +``` +npm install @keyv/redis +``` + +And then you can pass `CacheableRequest` your connection string: + +```js +const cacheableRequest = new CacheableRequest(http.request, 'redis://user:pass@localhost:6379').createCacheableRequest(); +``` + +[View all official Keyv storage adapters.](https://github.com/jaredwray/keyv#official-storage-adapters) + +Keyv also supports anything that follows the Map API so it's easy to write your own storage adapter or use a third-party solution. + +e.g The following are all valid storage adapters + +```js +const storageAdapter = new Map(); +// or +const storageAdapter = require('./my-storage-adapter'); +// or +const QuickLRU = require('quick-lru'); +const storageAdapter = new QuickLRU({ maxSize: 1000 }); + +const cacheableRequest = new CacheableRequest(http.request, storageAdapter).createCacheableRequest(); +``` + +View the [Keyv docs](https://github.com/jaredwray/keyv) for more information on how to use storage adapters. + +## API + +### new cacheableRequest(request, [storageAdapter]) + +Returns the provided request function wrapped with cache support. + +#### request + +Type: `function` + +Request function to wrap with cache support. Should be [`http.request`](https://nodejs.org/api/http.html#http_http_request_options_callback) or a similar API compatible request function. + +#### storageAdapter + +Type: `Keyv storage adapter`
+Default: `new Map()` + +A [Keyv](https://github.com/jaredwray/keyv) storage adapter instance, or connection string if using with an official Keyv storage adapter. + +### Instance + +#### cacheableRequest(opts, [cb]) + +Returns an event emitter. + +##### opts + +Type: `object`, `string` + +- Any of the default request functions options. +- Any [`http-cache-semantics`](https://github.com/kornelski/http-cache-semantics#constructor-options) options. +- Any of the following: + +###### opts.cache + +Type: `boolean`
+Default: `true` + +If the cache should be used. Setting this to false will completely bypass the cache for the current request. + +###### opts.strictTtl + +Type: `boolean`
+Default: `false` + +If set to `true` once a cached resource has expired it is deleted and will have to be re-requested. + +If set to `false` (default), after a cached resource's TTL expires it is kept in the cache and will be revalidated on the next request with `If-None-Match`/`If-Modified-Since` headers. + +###### opts.maxTtl + +Type: `number`
+Default: `undefined` + +Limits TTL. The `number` represents milliseconds. + +###### opts.automaticFailover + +Type: `boolean`
+Default: `false` + +When set to `true`, if the DB connection fails we will automatically fallback to a network request. DB errors will still be emitted to notify you of the problem even though the request callback may succeed. + +###### opts.forceRefresh + +Type: `boolean`
+Default: `false` + +Forces refreshing the cache. If the response could be retrieved from the cache, it will perform a new request and override the cache instead. + +##### cb + +Type: `function` + +The callback function which will receive the response as an argument. + +The response can be either a [Node.js HTTP response stream](https://nodejs.org/api/http.html#http_class_http_incomingmessage) or a [responselike object](https://github.com/lukechilds/responselike). The response will also have a `fromCache` property set with a boolean value. + +##### .on('request', request) + +`request` event to get the request object of the request. + +**Note:** This event will only fire if an HTTP request is actually made, not when a response is retrieved from cache. However, you should always handle the `request` event to end the request and handle any potential request errors. + +##### .on('response', response) + +`response` event to get the response object from the HTTP request or cache. + +##### .on('error', error) + +`error` event emitted in case of an error with the cache. + +Errors emitted here will be an instance of `CacheableRequest.RequestError` or `CacheableRequest.CacheError`. You will only ever receive a `RequestError` if the request function throws (normally caused by invalid user input). Normal request errors should be handled inside the `request` event. + +To properly handle all error scenarios you should use the following pattern: + +```js +cacheableRequest('example.com', cb) + .on('error', err => { + if (err instanceof CacheableRequest.CacheError) { + handleCacheError(err); // Cache error + } else if (err instanceof CacheableRequest.RequestError) { + handleRequestError(err); // Request function thrown + } + }) + .on('request', req => { + req.on('error', handleRequestError); // Request error emitted + req.end(); + }); +``` +**Note:** Database connection errors are emitted here, however `cacheable-request` will attempt to re-request the resource and bypass the cache on a connection error. Therefore a database connection error doesn't necessarily mean the request won't be fulfilled. + + +## Using Hooks +Hooks have been implemented since version `v9` and are very useful to modify response before saving it in cache. You can use hooks to modify response before saving it in cache. + +### Add Hooks + +The hook will pre compute response right before saving it in cache. You can include many hooks and it will run in order you add hook on response object. + +```js +import http from 'http'; +import CacheableRequest from 'cacheable-request'; + +const cacheableRequest = new CacheableRequest(request, cache).request(); + +// adding a hook to decompress response +cacheableRequest.addHook('onResponse', async (value: CacheValue, response: any) => { + const buffer = await pm(gunzip)(value.body); + value.body = buffer.toString(); + return value; +}); +``` + +here is also an example of how to add in the remote address + +```js +import CacheableRequest, {CacheValue} from 'cacheable-request'; + +const cacheableRequest = new CacheableRequest(request, cache).request(); +cacheableRequest.addHook('onResponse', (value: CacheValue, response: any) => { + if (response.connection) { + value.remoteAddress = response.connection.remoteAddress; + } + + return value; +}); +``` + +### Remove Hooks + +You can also remove hook by using below + +```js +CacheableRequest.removeHook('onResponse'); +``` + +## How to Contribute + +Cacheable-Request is an open source package and community driven that is maintained regularly. In addtion we have a couple of other guidelines for review: + +* [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) - Our code of conduct +* [CONTRIBUTING.md](CONTRIBUTING.md) - How to contribute to this project +* [SECURITY.md](SECURITY.md) - Security guidelines and supported versions + +## Post an Issue + +To post an issue, navigate to the "Issues" tab in the main repository, and then select "New Issue." Enter a clear title describing the issue, as well as a description containing additional relevant information. Also select the label that best describes your issue type. For a bug report, for example, create an issue with the label "bug." In the description field, Be sure to include replication steps, as well as any relevant error messages. + +If you're reporting a security violation, be sure to check out the project's [security policy](SECURITY.md). + +Please also refer to our [Code of Conduct](CODE_OF_CONDUCT.md) for more information on how to report issues. + +## Ask a Question + +To ask a question, create an issue with the label "question." In the issue description, include the related code and any context that can help us answer your question. + +## License + +This project is under the [MIT](LICENSE) license. + +MIT © Luke Childs 2017-2021 +MIT © Jared Wray 2022 diff --git a/includes/external/addressbook/node_modules/cacheable-request/dist/index.d.ts b/includes/external/addressbook/node_modules/cacheable-request/dist/index.d.ts new file mode 100644 index 0000000..123a8e3 --- /dev/null +++ b/includes/external/addressbook/node_modules/cacheable-request/dist/index.d.ts @@ -0,0 +1,17 @@ +import { RequestFn, StorageAdapter, CacheResponse, CacheValue, CacheableOptions, Emitter } from './types.js'; +type Func = (...args: any[]) => any; +declare class CacheableRequest { + cache: StorageAdapter; + cacheRequest: RequestFn; + hooks: Map; + constructor(cacheRequest: RequestFn, cacheAdapter?: StorageAdapter | string); + request: () => (options: CacheableOptions, cb?: (response: CacheResponse) => void) => Emitter; + addHook: (name: string, fn: Func) => void; + removeHook: (name: string) => boolean; + getHook: (name: string) => Func; + runHook: (name: string, ...args: any[]) => Promise; +} +export default CacheableRequest; +export * from './types.js'; +export declare const onResponse = "onResponse"; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cacheable-request/dist/index.d.ts.map b/includes/external/addressbook/node_modules/cacheable-request/dist/index.d.ts.map new file mode 100644 index 0000000..318c87e --- /dev/null +++ b/includes/external/addressbook/node_modules/cacheable-request/dist/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAC,SAAS,EAAE,cAAc,EAAE,aAAa,EAAE,UAAU,EAAE,gBAAgB,EAAuC,OAAO,EAA2B,MAAM,YAAY,CAAC;AAE1K,KAAK,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;AAEpC,cAAM,gBAAgB;IACrB,KAAK,EAAE,cAAc,CAAC;IACtB,YAAY,EAAE,SAAS,CAAC;IACxB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAA2B;gBACvC,YAAY,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,cAAc,GAAG,MAAM;IAmB3E,OAAO,kBAAmB,gBAAgB,kBACzB,aAAa,KAAK,IAAI,KAAG,OAAO,CAuM/C;IAEF,OAAO,SAAU,MAAM,MAAM,IAAI,UAI/B;IAEF,UAAU,SAAU,MAAM,aAA6B;IAEvD,OAAO,SAAU,MAAM,UAA0B;IAEjD,OAAO,SAAgB,MAAM,WAAW,GAAG,EAAE,KAAG,QAAQ,UAAU,CAAC,CAAoC;CACvG;AA6CD,eAAe,gBAAgB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,eAAO,MAAM,UAAU,eAAe,CAAC"} \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cacheable-request/dist/index.js b/includes/external/addressbook/node_modules/cacheable-request/dist/index.js new file mode 100644 index 0000000..3ab3ccc --- /dev/null +++ b/includes/external/addressbook/node_modules/cacheable-request/dist/index.js @@ -0,0 +1,275 @@ +import EventEmitter from 'node:events'; +import urlLib from 'node:url'; +import crypto from 'node:crypto'; +import stream, { PassThrough as PassThroughStream } from 'node:stream'; +import normalizeUrl from 'normalize-url'; +import getStream from 'get-stream'; +import CachePolicy from 'http-cache-semantics'; +import Response from 'responselike'; +import Keyv from 'keyv'; +import mimicResponse from 'mimic-response'; +import { CacheError, RequestError } from './types.js'; +class CacheableRequest { + constructor(cacheRequest, cacheAdapter) { + this.hooks = new Map(); + this.request = () => (options, cb) => { + let url; + if (typeof options === 'string') { + url = normalizeUrlObject(urlLib.parse(options)); + options = {}; + } + else if (options instanceof urlLib.URL) { + url = normalizeUrlObject(urlLib.parse(options.toString())); + options = {}; + } + else { + const [pathname, ...searchParts] = (options.path ?? '').split('?'); + const search = searchParts.length > 0 + ? `?${searchParts.join('?')}` + : ''; + url = normalizeUrlObject({ ...options, pathname, search }); + } + options = { + headers: {}, + method: 'GET', + cache: true, + strictTtl: false, + automaticFailover: false, + ...options, + ...urlObjectToRequestOptions(url), + }; + options.headers = Object.fromEntries(entries(options.headers).map(([key, value]) => [key.toLowerCase(), value])); + const ee = new EventEmitter(); + const normalizedUrlString = normalizeUrl(urlLib.format(url), { + stripWWW: false, + removeTrailingSlash: false, + stripAuthentication: false, + }); + let key = `${options.method}:${normalizedUrlString}`; + // POST, PATCH, and PUT requests may be cached, depending on the response + // cache-control headers. As a result, the body of the request should be + // added to the cache key in order to avoid collisions. + if (options.body && options.method !== undefined && ['POST', 'PATCH', 'PUT'].includes(options.method)) { + if (options.body instanceof stream.Readable) { + // Streamed bodies should completely skip the cache because they may + // or may not be hashable and in either case the stream would need to + // close before the cache key could be generated. + options.cache = false; + } + else { + key += `:${crypto.createHash('md5').update(options.body).digest('hex')}`; + } + } + let revalidate = false; + let madeRequest = false; + const makeRequest = (options_) => { + madeRequest = true; + let requestErrored = false; + let requestErrorCallback = () => { }; + const requestErrorPromise = new Promise(resolve => { + requestErrorCallback = () => { + if (!requestErrored) { + requestErrored = true; + resolve(); + } + }; + }); + const handler = async (response) => { + if (revalidate) { + response.status = response.statusCode; + const revalidatedPolicy = CachePolicy.fromObject(revalidate.cachePolicy).revalidatedPolicy(options_, response); + if (!revalidatedPolicy.modified) { + response.resume(); + await new Promise(resolve => { + // Skipping 'error' handler cause 'error' event should't be emitted for 304 response + response + .once('end', resolve); + }); + const headers = convertHeaders(revalidatedPolicy.policy.responseHeaders()); + response = new Response({ statusCode: revalidate.statusCode, headers, body: revalidate.body, url: revalidate.url }); + response.cachePolicy = revalidatedPolicy.policy; + response.fromCache = true; + } + } + if (!response.fromCache) { + response.cachePolicy = new CachePolicy(options_, response, options_); + response.fromCache = false; + } + let clonedResponse; + if (options_.cache && response.cachePolicy.storable()) { + clonedResponse = cloneResponse(response); + (async () => { + try { + const bodyPromise = getStream.buffer(response); + await Promise.race([ + requestErrorPromise, + new Promise(resolve => response.once('end', resolve)), + new Promise(resolve => response.once('close', resolve)), // eslint-disable-line no-promise-executor-return + ]); + const body = await bodyPromise; + let value = { + url: response.url, + statusCode: response.fromCache ? revalidate.statusCode : response.statusCode, + body, + cachePolicy: response.cachePolicy.toObject(), + }; + let ttl = options_.strictTtl ? response.cachePolicy.timeToLive() : undefined; + if (options_.maxTtl) { + ttl = ttl ? Math.min(ttl, options_.maxTtl) : options_.maxTtl; + } + if (this.hooks.size > 0) { + /* eslint-disable no-await-in-loop */ + for (const key_ of this.hooks.keys()) { + value = await this.runHook(key_, value, response); + } + /* eslint-enable no-await-in-loop */ + } + await this.cache.set(key, value, ttl); + } + catch (error) { + ee.emit('error', new CacheError(error)); + } + })(); + } + else if (options_.cache && revalidate) { + (async () => { + try { + await this.cache.delete(key); + } + catch (error) { + ee.emit('error', new CacheError(error)); + } + })(); + } + ee.emit('response', clonedResponse ?? response); + if (typeof cb === 'function') { + cb(clonedResponse ?? response); + } + }; + try { + const request_ = this.cacheRequest(options_, handler); + request_.once('error', requestErrorCallback); + request_.once('abort', requestErrorCallback); + request_.once('destroy', requestErrorCallback); + ee.emit('request', request_); + } + catch (error) { + ee.emit('error', new RequestError(error)); + } + }; + (async () => { + const get = async (options_) => { + await Promise.resolve(); + const cacheEntry = options_.cache ? await this.cache.get(key) : undefined; + if (typeof cacheEntry === 'undefined' && !options_.forceRefresh) { + makeRequest(options_); + return; + } + const policy = CachePolicy.fromObject(cacheEntry.cachePolicy); + if (policy.satisfiesWithoutRevalidation(options_) && !options_.forceRefresh) { + const headers = convertHeaders(policy.responseHeaders()); + const response = new Response({ statusCode: cacheEntry.statusCode, headers, body: cacheEntry.body, url: cacheEntry.url }); + response.cachePolicy = policy; + response.fromCache = true; + ee.emit('response', response); + if (typeof cb === 'function') { + cb(response); + } + } + else if (policy.satisfiesWithoutRevalidation(options_) && Date.now() >= policy.timeToLive() && options_.forceRefresh) { + await this.cache.delete(key); + options_.headers = policy.revalidationHeaders(options_); + makeRequest(options_); + } + else { + revalidate = cacheEntry; + options_.headers = policy.revalidationHeaders(options_); + makeRequest(options_); + } + }; + const errorHandler = (error) => ee.emit('error', new CacheError(error)); + if (this.cache instanceof Keyv) { + const cachek = this.cache; + cachek.once('error', errorHandler); + ee.on('error', () => cachek.removeListener('error', errorHandler)); + ee.on('response', () => cachek.removeListener('error', errorHandler)); + } + try { + await get(options); + } + catch (error) { + if (options.automaticFailover && !madeRequest) { + makeRequest(options); + } + ee.emit('error', new CacheError(error)); + } + })(); + return ee; + }; + this.addHook = (name, fn) => { + if (!this.hooks.has(name)) { + this.hooks.set(name, fn); + } + }; + this.removeHook = (name) => this.hooks.delete(name); + this.getHook = (name) => this.hooks.get(name); + this.runHook = async (name, ...args) => this.hooks.get(name)?.(...args); + if (cacheAdapter instanceof Keyv) { + this.cache = cacheAdapter; + } + else if (typeof cacheAdapter === 'string') { + this.cache = new Keyv({ + uri: cacheAdapter, + namespace: 'cacheable-request', + }); + } + else { + this.cache = new Keyv({ + store: cacheAdapter, + namespace: 'cacheable-request', + }); + } + this.request = this.request.bind(this); + this.cacheRequest = cacheRequest; + } +} +const entries = Object.entries; +const cloneResponse = (response) => { + const clone = new PassThroughStream({ autoDestroy: false }); + mimicResponse(response, clone); + return response.pipe(clone); +}; +const urlObjectToRequestOptions = (url) => { + const options = { ...url }; + options.path = `${url.pathname || '/'}${url.search || ''}`; + delete options.pathname; + delete options.search; + return options; +}; +const normalizeUrlObject = (url) => +// If url was parsed by url.parse or new URL: +// - hostname will be set +// - host will be hostname[:port] +// - port will be set if it was explicit in the parsed string +// Otherwise, url was from request options: +// - hostname or host may be set +// - host shall not have port encoded +({ + protocol: url.protocol, + auth: url.auth, + hostname: url.hostname || url.host || 'localhost', + port: url.port, + pathname: url.pathname, + search: url.search, +}); +const convertHeaders = (headers) => { + const result = []; + for (const name of Object.keys(headers)) { + result[name.toLowerCase()] = headers[name]; + } + return result; +}; +export default CacheableRequest; +export * from './types.js'; +export const onResponse = 'onResponse'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cacheable-request/dist/index.js.map b/includes/external/addressbook/node_modules/cacheable-request/dist/index.js.map new file mode 100644 index 0000000..60a4412 --- /dev/null +++ b/includes/external/addressbook/node_modules/cacheable-request/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cacheable-request/dist/types.d.ts b/includes/external/addressbook/node_modules/cacheable-request/dist/types.d.ts new file mode 100644 index 0000000..151b576 --- /dev/null +++ b/includes/external/addressbook/node_modules/cacheable-request/dist/types.d.ts @@ -0,0 +1,106 @@ +/// +/// +/// +/// +import { request, RequestOptions, ClientRequest, ServerResponse } from 'node:http'; +import { URL } from 'node:url'; +import { EventEmitter } from 'node:events'; +import { Buffer } from 'node:buffer'; +import { Store } from 'keyv'; +import ResponseLike from 'responselike'; +import { CachePolicyObject } from 'http-cache-semantics'; +export type RequestFn = typeof request; +export type RequestFunction = typeof request; +export type CacheResponse = ServerResponse | typeof ResponseLike; +export type CacheableRequestFunction = (options: CacheableOptions, cb?: (response: CacheResponse) => void) => Emitter; +export type CacheableOptions = Options & RequestOptions | string | URL; +export type StorageAdapter = Store; +export interface Options { + /** + * If the cache should be used. Setting this to `false` will completely bypass the cache for the current request. + * @default true + */ + cache?: boolean | undefined; + /** + * If set to `true` once a cached resource has expired it is deleted and will have to be re-requested. + * + * If set to `false`, after a cached resource's TTL expires it is kept in the cache and will be revalidated + * on the next request with `If-None-Match`/`If-Modified-Since` headers. + * @default false + */ + strictTtl?: boolean | undefined; + /** + * Limits TTL. The `number` represents milliseconds. + * @default undefined + */ + maxTtl?: number | undefined; + /** + * When set to `true`, if the DB connection fails we will automatically fallback to a network request. + * DB errors will still be emitted to notify you of the problem even though the request callback may succeed. + * @default false + */ + automaticFailover?: boolean | undefined; + /** + * Forces refreshing the cache. If the response could be retrieved from the cache, it will perform a + * new request and override the cache instead. + * @default false + */ + forceRefresh?: boolean | undefined; + remoteAddress?: boolean | undefined; + url?: string | undefined; + headers?: Record; + body?: Buffer; +} +export interface CacheValue extends Record { + url: string; + statusCode: number; + body: Buffer | string; + cachePolicy: CachePolicyObject; +} +export interface Emitter extends EventEmitter { + addListener(event: 'request', listener: (request: ClientRequest) => void): this; + addListener(event: 'response', listener: (response: CacheResponse) => void): this; + addListener(event: 'error', listener: (error: RequestError | CacheError) => void): this; + on(event: 'request', listener: (request: ClientRequest) => void): this; + on(event: 'response', listener: (response: CacheResponse) => void): this; + on(event: 'error', listener: (error: RequestError | CacheError) => void): this; + once(event: 'request', listener: (request: ClientRequest) => void): this; + once(event: 'response', listener: (response: CacheResponse) => void): this; + once(event: 'error', listener: (error: RequestError | CacheError) => void): this; + prependListener(event: 'request', listener: (request: ClientRequest) => void): this; + prependListener(event: 'response', listener: (response: CacheResponse) => void): this; + prependListener(event: 'error', listener: (error: RequestError | CacheError) => void): this; + prependOnceListener(event: 'request', listener: (request: ClientRequest) => void): this; + prependOnceListener(event: 'response', listener: (response: CacheResponse) => void): this; + prependOnceListener(event: 'error', listener: (error: RequestError | CacheError) => void): this; + removeListener(event: 'request', listener: (request: ClientRequest) => void): this; + removeListener(event: 'response', listener: (response: CacheResponse) => void): this; + removeListener(event: 'error', listener: (error: RequestError | CacheError) => void): this; + off(event: 'request', listener: (request: ClientRequest) => void): this; + off(event: 'response', listener: (response: CacheResponse) => void): this; + off(event: 'error', listener: (error: RequestError | CacheError) => void): this; + removeAllListeners(event?: 'request' | 'response' | 'error'): this; + listeners(event: 'request'): Array<(request: ClientRequest) => void>; + listeners(event: 'response'): Array<(response: CacheResponse) => void>; + listeners(event: 'error'): Array<(error: RequestError | CacheError) => void>; + rawListeners(event: 'request'): Array<(request: ClientRequest) => void>; + rawListeners(event: 'response'): Array<(response: CacheResponse) => void>; + rawListeners(event: 'error'): Array<(error: RequestError | CacheError) => void>; + emit(event: 'request', request: ClientRequest): boolean; + emit(event: 'response', response: CacheResponse): boolean; + emit(event: 'error', error: RequestError | CacheError): boolean; + eventNames(): Array<'request' | 'response' | 'error'>; + listenerCount(type: 'request' | 'response' | 'error'): number; +} +export declare class RequestError extends Error { + constructor(error: Error); +} +export declare class CacheError extends Error { + constructor(error: Error); +} +export interface UrlOption { + path: string; + pathname?: string; + search?: string; +} +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cacheable-request/dist/types.d.ts.map b/includes/external/addressbook/node_modules/cacheable-request/dist/types.d.ts.map new file mode 100644 index 0000000..4d46e21 --- /dev/null +++ b/includes/external/addressbook/node_modules/cacheable-request/dist/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cacheable-request/dist/types.js b/includes/external/addressbook/node_modules/cacheable-request/dist/types.js new file mode 100644 index 0000000..311ef10 --- /dev/null +++ b/includes/external/addressbook/node_modules/cacheable-request/dist/types.js @@ -0,0 +1,19 @@ +// Type definitions for cacheable-request 6.0 +// Project: https://github.com/lukechilds/cacheable-request#readme +// Definitions by: BendingBender +// Paul Melnikow +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.3 +export class RequestError extends Error { + constructor(error) { + super(error.message); + Object.assign(this, error); + } +} +export class CacheError extends Error { + constructor(error) { + super(error.message); + Object.assign(this, error); + } +} +//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cacheable-request/dist/types.js.map b/includes/external/addressbook/node_modules/cacheable-request/dist/types.js.map new file mode 100644 index 0000000..e369227 --- /dev/null +++ b/includes/external/addressbook/node_modules/cacheable-request/dist/types.js.map @@ -0,0 +1 @@ +{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,kEAAkE;AAClE,mEAAmE;AACnE,kEAAkE;AAClE,kEAAkE;AAClE,0BAA0B;AA+H1B,MAAM,OAAO,YAAa,SAAQ,KAAK;IACtC,YAAY,KAAY;QACvB,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC;CACD;AACD,MAAM,OAAO,UAAW,SAAQ,KAAK;IACpC,YAAY,KAAY;QACvB,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC;CACD"} \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cacheable-request/package.json b/includes/external/addressbook/node_modules/cacheable-request/package.json new file mode 100644 index 0000000..df96587 --- /dev/null +++ b/includes/external/addressbook/node_modules/cacheable-request/package.json @@ -0,0 +1,118 @@ +{ + "name": "cacheable-request", + "version": "10.2.9", + "description": "Wrap native HTTP requests with RFC compliant cache support", + "license": "MIT", + "repository": "jaredwray/cacheable-request", + "author": "Jared Wray (http://jaredwray.com)", + "type": "module", + "exports": "./dist/index.js", + "types": "./dist/index.d.ts", + "engines": { + "node": ">=14.16" + }, + "scripts": { + "test": "xo && NODE_OPTIONS=--experimental-vm-modules jest --coverage ", + "prepare": "npm run build", + "build": "tsc --project tsconfig.build.json", + "clean": "rm -rf node_modules && rm -rf ./coverage && rm -rf ./package-lock.json && rm -rf ./test/testdb.sqlite && rm -rf ./dist" + }, + "files": [ + "dist" + ], + "keywords": [ + "HTTP", + "HTTPS", + "cache", + "caching", + "layer", + "cacheable", + "RFC 7234", + "RFC", + "7234", + "compliant" + ], + "dependenciesComments": { + "@types/http-cache-semantics": "It needs to be in the dependencies list and not devDependencies because otherwise projects that use this one will be getting `Could not find a declaration file for module 'http-cache-semantics'` error when running `tsc`, see https://github.com/jaredwray/cacheable-request/issues/194 for details" + }, + "dependencies": { + "@types/http-cache-semantics": "^4.0.1", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.2", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" + }, + "devDependencies": { + "@keyv/sqlite": "^3.6.5", + "@types/delay": "^3.1.0", + "@types/get-stream": "^3.0.2", + "@types/jest": "^29.5.0", + "@types/node": "^18.15.10", + "@types/responselike": "^1.0.0", + "@types/sqlite3": "^3.1.8", + "body-parser": "^1.20.2", + "delay": "^5.0.0", + "eslint-plugin-jest": "^27.2.1", + "express": "^4.18.2", + "jest": "^29.5.0", + "pify": "^6.1.0", + "sqlite3": "^5.1.6", + "ts-jest": "^29.0.5", + "ts-jest-resolver": "^2.0.1", + "ts-node": "^10.9.1", + "typescript": "^5.0.2", + "xo": "^0.53.1" + }, + "jest": { + "collectCoverageFrom": [ + "src/**/*.{ts,js}" + ], + "extensionsToTreatAsEsm": [ + ".ts" + ], + "resolver": "ts-jest-resolver", + "moduleFileExtensions": [ + "ts", + "js" + ], + "transform": { + "^.+\\.(ts|tsx)$": [ + "ts-jest", + { + "tsconfig": "./tsconfig.build.json", + "useESM": true + } + ] + }, + "testMatch": [ + "**/test/*.test.(ts|js)" + ], + "testEnvironment": "node" + }, + "xo": { + "plugins": [ + "jest" + ], + "extends": [ + "plugin:jest/recommended" + ], + "rules": { + "@typescript-eslint/triple-slash-reference": 0, + "@typescript-eslint/no-namespace": 0, + "@typescript-eslint/no-unsafe-assignment": 0, + "@typescript-eslint/no-unsafe-call": 0, + "@typescript-eslint/ban-types": 0, + "@typescript-eslint/restrict-template-expressions": 0, + "@typescript-eslint/no-unsafe-return": 0, + "new-cap": 0, + "unicorn/no-abusive-eslint-disable": 0, + "@typescript-eslint/restrict-plus-operands": 0, + "@typescript-eslint/no-implicit-any-catch": 0, + "@typescript-eslint/consistent-type-imports": 0, + "@typescript-eslint/consistent-type-definitions": 0, + "n/prefer-global/url": 0 + } + } +} diff --git a/includes/external/addressbook/node_modules/chardet/LICENSE b/includes/external/addressbook/node_modules/chardet/LICENSE new file mode 100644 index 0000000..6628827 --- /dev/null +++ b/includes/external/addressbook/node_modules/chardet/LICENSE @@ -0,0 +1,19 @@ +Copyright (C) 2023 Dmitry Shirokov + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/includes/external/addressbook/node_modules/chardet/README.md b/includes/external/addressbook/node_modules/chardet/README.md new file mode 100644 index 0000000..6563a85 --- /dev/null +++ b/includes/external/addressbook/node_modules/chardet/README.md @@ -0,0 +1,107 @@ +# chardet + +*Chardet* is a character detection module written in pure Javascript (Typescript). Module uses occurrence analysis to determine the most probable encoding. + +- Packed size is only **22 KB** +- Works in all environments: Node / Browser / Native +- Works on all platforms: Linux / Mac / Windows +- No dependencies +- No native code / bindings +- 100% written in Typescript +- Extensive code coverage + +## Installation + +``` +npm i chardet +``` + +## Usage + +To return the encoding with the highest confidence: + +```javascript +import chardet from 'chardet'; + +const encoding = chardet.detect(Buffer.from('hello there!')); +// or +const encoding = await chardet.detectFile('/path/to/file'); +// or +const encoding = chardet.detectFileSync('/path/to/file'); +``` + +To return the full list of possible encodings use `analyse` method. + +```javascript +import chardet from 'chardet'; +chardet.analyse(Buffer.from('hello there!')); +``` + +Returned value is an array of objects sorted by confidence value in descending order + +```javascript +[ + { confidence: 90, name: 'UTF-8' }, + { confidence: 20, name: 'windows-1252', lang: 'fr' } +]; +``` + +## Working with large data sets + +Sometimes, when data set is huge and you want to optimize performance (with a tradeoff of less accuracy), +you can sample only the first N bytes of the buffer: + +```javascript +chardet + .detectFile('/path/to/file', { sampleSize: 32 }) + .then(encoding => console.log(encoding)); +``` + +You can also specify where to begin reading from in the buffer: + +```javascript +chardet + .detectFile('/path/to/file', { sampleSize: 32, offset: 128 }) + .then(encoding => console.log(encoding)); +``` + +## Supported Encodings: + +- UTF-8 +- UTF-16 LE +- UTF-16 BE +- UTF-32 LE +- UTF-32 BE +- ISO-2022-JP +- ISO-2022-KR +- ISO-2022-CN +- Shift_JIS +- Big5 +- EUC-JP +- EUC-KR +- GB18030 +- ISO-8859-1 +- ISO-8859-2 +- ISO-8859-5 +- ISO-8859-6 +- ISO-8859-7 +- ISO-8859-8 +- ISO-8859-9 +- windows-1250 +- windows-1251 +- windows-1252 +- windows-1253 +- windows-1254 +- windows-1255 +- windows-1256 +- KOI8-R + +Currently only these encodings are supported. + +## Typescript? + +Yes. Type definitions are included. + +### References + +- ICU project http://site.icu-project.org/ diff --git a/includes/external/addressbook/node_modules/chardet/lib/encoding/index.d.ts b/includes/external/addressbook/node_modules/chardet/lib/encoding/index.d.ts new file mode 100644 index 0000000..89605cc --- /dev/null +++ b/includes/external/addressbook/node_modules/chardet/lib/encoding/index.d.ts @@ -0,0 +1,14 @@ +import { Match } from '../match'; +export interface Recogniser { + match(input: Context): Match | null; + name(input?: Context): string; + language?(): string | undefined; +} +export interface Context { + byteStats: number[]; + c1Bytes: boolean; + rawInput: Uint8Array; + rawLen: number; + inputBytes: Uint8Array; + inputLen: number; +} diff --git a/includes/external/addressbook/node_modules/chardet/lib/encoding/index.js b/includes/external/addressbook/node_modules/chardet/lib/encoding/index.js new file mode 100644 index 0000000..aa219d8 --- /dev/null +++ b/includes/external/addressbook/node_modules/chardet/lib/encoding/index.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/chardet/lib/encoding/index.js.map b/includes/external/addressbook/node_modules/chardet/lib/encoding/index.js.map new file mode 100644 index 0000000..c598beb --- /dev/null +++ b/includes/external/addressbook/node_modules/chardet/lib/encoding/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/encoding/index.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/chardet/lib/encoding/iso2022.d.ts b/includes/external/addressbook/node_modules/chardet/lib/encoding/iso2022.d.ts new file mode 100644 index 0000000..2c93b20 --- /dev/null +++ b/includes/external/addressbook/node_modules/chardet/lib/encoding/iso2022.d.ts @@ -0,0 +1,23 @@ +import { Context, Recogniser } from '.'; +import { Match } from '../match'; +declare class ISO_2022 implements Recogniser { + escapeSequences: number[][]; + name(): string; + match(det: Context): Match | null; +} +export declare class ISO_2022_JP extends ISO_2022 { + name(): string; + language(): string; + escapeSequences: number[][]; +} +export declare class ISO_2022_KR extends ISO_2022 { + name(): string; + language(): string; + escapeSequences: number[][]; +} +export declare class ISO_2022_CN extends ISO_2022 { + name(): string; + language(): string; + escapeSequences: number[][]; +} +export {}; diff --git a/includes/external/addressbook/node_modules/chardet/lib/encoding/iso2022.js b/includes/external/addressbook/node_modules/chardet/lib/encoding/iso2022.js new file mode 100644 index 0000000..26e27ce --- /dev/null +++ b/includes/external/addressbook/node_modules/chardet/lib/encoding/iso2022.js @@ -0,0 +1,114 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ISO_2022_CN = exports.ISO_2022_KR = exports.ISO_2022_JP = void 0; +const match_1 = __importDefault(require("../match")); +class ISO_2022 { + constructor() { + this.escapeSequences = []; + } + name() { + return 'ISO_2022'; + } + match(det) { + let i, j; + let escN; + let hits = 0; + let misses = 0; + let shifts = 0; + let confidence; + const text = det.inputBytes; + const textLen = det.inputLen; + scanInput: for (i = 0; i < textLen; i++) { + if (text[i] == 0x1b) { + checkEscapes: for (escN = 0; escN < this.escapeSequences.length; escN++) { + const seq = this.escapeSequences[escN]; + if (textLen - i < seq.length) + continue checkEscapes; + for (j = 1; j < seq.length; j++) + if (seq[j] != text[i + j]) + continue checkEscapes; + hits++; + i += seq.length - 1; + continue scanInput; + } + misses++; + } + if (text[i] == 0x0e || text[i] == 0x0f) + shifts++; + } + if (hits == 0) + return null; + confidence = (100 * hits - 100 * misses) / (hits + misses); + if (hits + shifts < 5) + confidence -= (5 - (hits + shifts)) * 10; + return confidence <= 0 ? null : (0, match_1.default)(det, this, confidence); + } +} +class ISO_2022_JP extends ISO_2022 { + constructor() { + super(...arguments); + this.escapeSequences = [ + [0x1b, 0x24, 0x28, 0x43], + [0x1b, 0x24, 0x28, 0x44], + [0x1b, 0x24, 0x40], + [0x1b, 0x24, 0x41], + [0x1b, 0x24, 0x42], + [0x1b, 0x26, 0x40], + [0x1b, 0x28, 0x42], + [0x1b, 0x28, 0x48], + [0x1b, 0x28, 0x49], + [0x1b, 0x28, 0x4a], + [0x1b, 0x2e, 0x41], + [0x1b, 0x2e, 0x46], + ]; + } + name() { + return 'ISO-2022-JP'; + } + language() { + return 'ja'; + } +} +exports.ISO_2022_JP = ISO_2022_JP; +class ISO_2022_KR extends ISO_2022 { + constructor() { + super(...arguments); + this.escapeSequences = [[0x1b, 0x24, 0x29, 0x43]]; + } + name() { + return 'ISO-2022-KR'; + } + language() { + return 'kr'; + } +} +exports.ISO_2022_KR = ISO_2022_KR; +class ISO_2022_CN extends ISO_2022 { + constructor() { + super(...arguments); + this.escapeSequences = [ + [0x1b, 0x24, 0x29, 0x41], + [0x1b, 0x24, 0x29, 0x47], + [0x1b, 0x24, 0x2a, 0x48], + [0x1b, 0x24, 0x29, 0x45], + [0x1b, 0x24, 0x2b, 0x49], + [0x1b, 0x24, 0x2b, 0x4a], + [0x1b, 0x24, 0x2b, 0x4b], + [0x1b, 0x24, 0x2b, 0x4c], + [0x1b, 0x24, 0x2b, 0x4d], + [0x1b, 0x4e], + [0x1b, 0x4f], + ]; + } + name() { + return 'ISO-2022-CN'; + } + language() { + return 'zh'; + } +} +exports.ISO_2022_CN = ISO_2022_CN; +//# sourceMappingURL=iso2022.js.map \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/chardet/lib/encoding/iso2022.js.map b/includes/external/addressbook/node_modules/chardet/lib/encoding/iso2022.js.map new file mode 100644 index 0000000..6bc830b --- /dev/null +++ b/includes/external/addressbook/node_modules/chardet/lib/encoding/iso2022.js.map @@ -0,0 +1 @@ +{"version":3,"file":"iso2022.js","sourceRoot":"","sources":["../../src/encoding/iso2022.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/chardet/lib/encoding/mbcs.d.ts b/includes/external/addressbook/node_modules/chardet/lib/encoding/mbcs.d.ts new file mode 100644 index 0000000..660da92 --- /dev/null +++ b/includes/external/addressbook/node_modules/chardet/lib/encoding/mbcs.d.ts @@ -0,0 +1,50 @@ +import { Context, Recogniser } from '.'; +import { Match } from '../match'; +declare class IteratedChar { + charValue: number; + index: number; + nextIndex: number; + error: boolean; + done: boolean; + constructor(); + reset(): void; + nextByte(det: Context): number; +} +declare class mbcs implements Recogniser { + commonChars: number[]; + name(): string; + match(det: Context): Match | null; + nextChar(_iter: IteratedChar, _det: Context): boolean; +} +export declare class sjis extends mbcs { + name(): string; + language(): string; + commonChars: number[]; + nextChar(iter: IteratedChar, det: Context): boolean; +} +export declare class big5 extends mbcs { + name(): string; + language(): string; + commonChars: number[]; + nextChar(iter: IteratedChar, det: Context): boolean; +} +declare function eucNextChar(iter: IteratedChar, det: Context): boolean; +export declare class euc_jp extends mbcs { + name(): string; + language(): string; + commonChars: number[]; + nextChar: typeof eucNextChar; +} +export declare class euc_kr extends mbcs { + name(): string; + language(): string; + commonChars: number[]; + nextChar: typeof eucNextChar; +} +export declare class gb_18030 extends mbcs { + name(): string; + language(): string; + nextChar(iter: IteratedChar, det: Context): boolean; + commonChars: number[]; +} +export {}; diff --git a/includes/external/addressbook/node_modules/chardet/lib/encoding/mbcs.js b/includes/external/addressbook/node_modules/chardet/lib/encoding/mbcs.js new file mode 100644 index 0000000..9524dfa --- /dev/null +++ b/includes/external/addressbook/node_modules/chardet/lib/encoding/mbcs.js @@ -0,0 +1,347 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.gb_18030 = exports.euc_kr = exports.euc_jp = exports.big5 = exports.sjis = void 0; +const match_1 = __importDefault(require("../match")); +function binarySearch(arr, searchValue) { + const find = (arr, searchValue, left, right) => { + if (right < left) + return -1; + const mid = Math.floor((left + right) >>> 1); + if (searchValue > arr[mid]) + return find(arr, searchValue, mid + 1, right); + if (searchValue < arr[mid]) + return find(arr, searchValue, left, mid - 1); + return mid; + }; + return find(arr, searchValue, 0, arr.length - 1); +} +class IteratedChar { + constructor() { + this.charValue = 0; + this.index = 0; + this.nextIndex = 0; + this.error = false; + this.done = false; + } + reset() { + this.charValue = 0; + this.index = -1; + this.nextIndex = 0; + this.error = false; + this.done = false; + } + nextByte(det) { + if (this.nextIndex >= det.rawLen) { + this.done = true; + return -1; + } + const byteValue = det.rawInput[this.nextIndex++] & 0x00ff; + return byteValue; + } +} +class mbcs { + constructor() { + this.commonChars = []; + } + name() { + return 'mbcs'; + } + match(det) { + let doubleByteCharCount = 0, commonCharCount = 0, badCharCount = 0, totalCharCount = 0, confidence = 0; + const iter = new IteratedChar(); + detectBlock: { + for (iter.reset(); this.nextChar(iter, det);) { + totalCharCount++; + if (iter.error) { + badCharCount++; + } + else { + const cv = iter.charValue & 0xffffffff; + if (cv > 0xff) { + doubleByteCharCount++; + if (this.commonChars != null) { + if (binarySearch(this.commonChars, cv) >= 0) { + commonCharCount++; + } + } + } + } + if (badCharCount >= 2 && badCharCount * 5 >= doubleByteCharCount) { + break detectBlock; + } + } + if (doubleByteCharCount <= 10 && badCharCount == 0) { + if (doubleByteCharCount == 0 && totalCharCount < 10) { + confidence = 0; + } + else { + confidence = 10; + } + break detectBlock; + } + if (doubleByteCharCount < 20 * badCharCount) { + confidence = 0; + break detectBlock; + } + if (this.commonChars == null) { + confidence = 30 + doubleByteCharCount - 20 * badCharCount; + if (confidence > 100) { + confidence = 100; + } + } + else { + const maxVal = Math.log(doubleByteCharCount / 4); + const scaleFactor = 90.0 / maxVal; + confidence = Math.floor(Math.log(commonCharCount + 1) * scaleFactor + 10); + confidence = Math.min(confidence, 100); + } + } + return confidence == 0 ? null : (0, match_1.default)(det, this, confidence); + } + nextChar(_iter, _det) { + return true; + } +} +class sjis extends mbcs { + constructor() { + super(...arguments); + this.commonChars = [ + 0x8140, 0x8141, 0x8142, 0x8145, 0x815b, 0x8169, 0x816a, 0x8175, 0x8176, + 0x82a0, 0x82a2, 0x82a4, 0x82a9, 0x82aa, 0x82ab, 0x82ad, 0x82af, 0x82b1, + 0x82b3, 0x82b5, 0x82b7, 0x82bd, 0x82be, 0x82c1, 0x82c4, 0x82c5, 0x82c6, + 0x82c8, 0x82c9, 0x82cc, 0x82cd, 0x82dc, 0x82e0, 0x82e7, 0x82e8, 0x82e9, + 0x82ea, 0x82f0, 0x82f1, 0x8341, 0x8343, 0x834e, 0x834f, 0x8358, 0x835e, + 0x8362, 0x8367, 0x8375, 0x8376, 0x8389, 0x838a, 0x838b, 0x838d, 0x8393, + 0x8e96, 0x93fa, 0x95aa, + ]; + } + name() { + return 'Shift_JIS'; + } + language() { + return 'ja'; + } + nextChar(iter, det) { + iter.index = iter.nextIndex; + iter.error = false; + const firstByte = (iter.charValue = iter.nextByte(det)); + if (firstByte < 0) + return false; + if (firstByte <= 0x7f || (firstByte > 0xa0 && firstByte <= 0xdf)) + return true; + const secondByte = iter.nextByte(det); + if (secondByte < 0) + return false; + iter.charValue = (firstByte << 8) | secondByte; + if (!((secondByte >= 0x40 && secondByte <= 0x7f) || + (secondByte >= 0x80 && secondByte <= 0xff))) { + iter.error = true; + } + return true; + } +} +exports.sjis = sjis; +class big5 extends mbcs { + constructor() { + super(...arguments); + this.commonChars = [ + 0xa140, 0xa141, 0xa142, 0xa143, 0xa147, 0xa149, 0xa175, 0xa176, 0xa440, + 0xa446, 0xa447, 0xa448, 0xa451, 0xa454, 0xa457, 0xa464, 0xa46a, 0xa46c, + 0xa477, 0xa4a3, 0xa4a4, 0xa4a7, 0xa4c1, 0xa4ce, 0xa4d1, 0xa4df, 0xa4e8, + 0xa4fd, 0xa540, 0xa548, 0xa558, 0xa569, 0xa5cd, 0xa5e7, 0xa657, 0xa661, + 0xa662, 0xa668, 0xa670, 0xa6a8, 0xa6b3, 0xa6b9, 0xa6d3, 0xa6db, 0xa6e6, + 0xa6f2, 0xa740, 0xa751, 0xa759, 0xa7da, 0xa8a3, 0xa8a5, 0xa8ad, 0xa8d1, + 0xa8d3, 0xa8e4, 0xa8fc, 0xa9c0, 0xa9d2, 0xa9f3, 0xaa6b, 0xaaba, 0xaabe, + 0xaacc, 0xaafc, 0xac47, 0xac4f, 0xacb0, 0xacd2, 0xad59, 0xaec9, 0xafe0, + 0xb0ea, 0xb16f, 0xb2b3, 0xb2c4, 0xb36f, 0xb44c, 0xb44e, 0xb54c, 0xb5a5, + 0xb5bd, 0xb5d0, 0xb5d8, 0xb671, 0xb7ed, 0xb867, 0xb944, 0xbad8, 0xbb44, + 0xbba1, 0xbdd1, 0xc2c4, 0xc3b9, 0xc440, 0xc45f, + ]; + } + name() { + return 'Big5'; + } + language() { + return 'zh'; + } + nextChar(iter, det) { + iter.index = iter.nextIndex; + iter.error = false; + const firstByte = (iter.charValue = iter.nextByte(det)); + if (firstByte < 0) + return false; + if (firstByte <= 0x7f || firstByte == 0xff) + return true; + const secondByte = iter.nextByte(det); + if (secondByte < 0) + return false; + iter.charValue = (iter.charValue << 8) | secondByte; + if (secondByte < 0x40 || secondByte == 0x7f || secondByte == 0xff) + iter.error = true; + return true; + } +} +exports.big5 = big5; +function eucNextChar(iter, det) { + iter.index = iter.nextIndex; + iter.error = false; + let firstByte = 0; + let secondByte = 0; + let thirdByte = 0; + buildChar: { + firstByte = iter.charValue = iter.nextByte(det); + if (firstByte < 0) { + iter.done = true; + break buildChar; + } + if (firstByte <= 0x8d) { + break buildChar; + } + secondByte = iter.nextByte(det); + iter.charValue = (iter.charValue << 8) | secondByte; + if (firstByte >= 0xa1 && firstByte <= 0xfe) { + if (secondByte < 0xa1) { + iter.error = true; + } + break buildChar; + } + if (firstByte == 0x8e) { + if (secondByte < 0xa1) { + iter.error = true; + } + break buildChar; + } + if (firstByte == 0x8f) { + thirdByte = iter.nextByte(det); + iter.charValue = (iter.charValue << 8) | thirdByte; + if (thirdByte < 0xa1) { + iter.error = true; + } + } + } + return iter.done == false; +} +class euc_jp extends mbcs { + constructor() { + super(...arguments); + this.commonChars = [ + 0xa1a1, 0xa1a2, 0xa1a3, 0xa1a6, 0xa1bc, 0xa1ca, 0xa1cb, 0xa1d6, 0xa1d7, + 0xa4a2, 0xa4a4, 0xa4a6, 0xa4a8, 0xa4aa, 0xa4ab, 0xa4ac, 0xa4ad, 0xa4af, + 0xa4b1, 0xa4b3, 0xa4b5, 0xa4b7, 0xa4b9, 0xa4bb, 0xa4bd, 0xa4bf, 0xa4c0, + 0xa4c1, 0xa4c3, 0xa4c4, 0xa4c6, 0xa4c7, 0xa4c8, 0xa4c9, 0xa4ca, 0xa4cb, + 0xa4ce, 0xa4cf, 0xa4d0, 0xa4de, 0xa4df, 0xa4e1, 0xa4e2, 0xa4e4, 0xa4e8, + 0xa4e9, 0xa4ea, 0xa4eb, 0xa4ec, 0xa4ef, 0xa4f2, 0xa4f3, 0xa5a2, 0xa5a3, + 0xa5a4, 0xa5a6, 0xa5a7, 0xa5aa, 0xa5ad, 0xa5af, 0xa5b0, 0xa5b3, 0xa5b5, + 0xa5b7, 0xa5b8, 0xa5b9, 0xa5bf, 0xa5c3, 0xa5c6, 0xa5c7, 0xa5c8, 0xa5c9, + 0xa5cb, 0xa5d0, 0xa5d5, 0xa5d6, 0xa5d7, 0xa5de, 0xa5e0, 0xa5e1, 0xa5e5, + 0xa5e9, 0xa5ea, 0xa5eb, 0xa5ec, 0xa5ed, 0xa5f3, 0xb8a9, 0xb9d4, 0xbaee, + 0xbbc8, 0xbef0, 0xbfb7, 0xc4ea, 0xc6fc, 0xc7bd, 0xcab8, 0xcaf3, 0xcbdc, + 0xcdd1, + ]; + this.nextChar = eucNextChar; + } + name() { + return 'EUC-JP'; + } + language() { + return 'ja'; + } +} +exports.euc_jp = euc_jp; +class euc_kr extends mbcs { + constructor() { + super(...arguments); + this.commonChars = [ + 0xb0a1, 0xb0b3, 0xb0c5, 0xb0cd, 0xb0d4, 0xb0e6, 0xb0ed, 0xb0f8, 0xb0fa, + 0xb0fc, 0xb1b8, 0xb1b9, 0xb1c7, 0xb1d7, 0xb1e2, 0xb3aa, 0xb3bb, 0xb4c2, + 0xb4cf, 0xb4d9, 0xb4eb, 0xb5a5, 0xb5b5, 0xb5bf, 0xb5c7, 0xb5e9, 0xb6f3, + 0xb7af, 0xb7c2, 0xb7ce, 0xb8a6, 0xb8ae, 0xb8b6, 0xb8b8, 0xb8bb, 0xb8e9, + 0xb9ab, 0xb9ae, 0xb9cc, 0xb9ce, 0xb9fd, 0xbab8, 0xbace, 0xbad0, 0xbaf1, + 0xbbe7, 0xbbf3, 0xbbfd, 0xbcad, 0xbcba, 0xbcd2, 0xbcf6, 0xbdba, 0xbdc0, + 0xbdc3, 0xbdc5, 0xbec6, 0xbec8, 0xbedf, 0xbeee, 0xbef8, 0xbefa, 0xbfa1, + 0xbfa9, 0xbfc0, 0xbfe4, 0xbfeb, 0xbfec, 0xbff8, 0xc0a7, 0xc0af, 0xc0b8, + 0xc0ba, 0xc0bb, 0xc0bd, 0xc0c7, 0xc0cc, 0xc0ce, 0xc0cf, 0xc0d6, 0xc0da, + 0xc0e5, 0xc0fb, 0xc0fc, 0xc1a4, 0xc1a6, 0xc1b6, 0xc1d6, 0xc1df, 0xc1f6, + 0xc1f8, 0xc4a1, 0xc5cd, 0xc6ae, 0xc7cf, 0xc7d1, 0xc7d2, 0xc7d8, 0xc7e5, + 0xc8ad, + ]; + this.nextChar = eucNextChar; + } + name() { + return 'EUC-KR'; + } + language() { + return 'ko'; + } +} +exports.euc_kr = euc_kr; +class gb_18030 extends mbcs { + constructor() { + super(...arguments); + this.commonChars = [ + 0xa1a1, 0xa1a2, 0xa1a3, 0xa1a4, 0xa1b0, 0xa1b1, 0xa1f1, 0xa1f3, 0xa3a1, + 0xa3ac, 0xa3ba, 0xb1a8, 0xb1b8, 0xb1be, 0xb2bb, 0xb3c9, 0xb3f6, 0xb4f3, + 0xb5bd, 0xb5c4, 0xb5e3, 0xb6af, 0xb6d4, 0xb6e0, 0xb7a2, 0xb7a8, 0xb7bd, + 0xb7d6, 0xb7dd, 0xb8b4, 0xb8df, 0xb8f6, 0xb9ab, 0xb9c9, 0xb9d8, 0xb9fa, + 0xb9fd, 0xbacd, 0xbba7, 0xbbd6, 0xbbe1, 0xbbfa, 0xbcbc, 0xbcdb, 0xbcfe, + 0xbdcc, 0xbecd, 0xbedd, 0xbfb4, 0xbfc6, 0xbfc9, 0xc0b4, 0xc0ed, 0xc1cb, + 0xc2db, 0xc3c7, 0xc4dc, 0xc4ea, 0xc5cc, 0xc6f7, 0xc7f8, 0xc8ab, 0xc8cb, + 0xc8d5, 0xc8e7, 0xc9cf, 0xc9fa, 0xcab1, 0xcab5, 0xcac7, 0xcad0, 0xcad6, + 0xcaf5, 0xcafd, 0xccec, 0xcdf8, 0xceaa, 0xcec4, 0xced2, 0xcee5, 0xcfb5, + 0xcfc2, 0xcfd6, 0xd0c2, 0xd0c5, 0xd0d0, 0xd0d4, 0xd1a7, 0xd2aa, 0xd2b2, + 0xd2b5, 0xd2bb, 0xd2d4, 0xd3c3, 0xd3d0, 0xd3fd, 0xd4c2, 0xd4da, 0xd5e2, + 0xd6d0, + ]; + } + name() { + return 'GB18030'; + } + language() { + return 'zh'; + } + nextChar(iter, det) { + iter.index = iter.nextIndex; + iter.error = false; + let firstByte = 0; + let secondByte = 0; + let thirdByte = 0; + let fourthByte = 0; + buildChar: { + firstByte = iter.charValue = iter.nextByte(det); + if (firstByte < 0) { + iter.done = true; + break buildChar; + } + if (firstByte <= 0x80) { + break buildChar; + } + secondByte = iter.nextByte(det); + iter.charValue = (iter.charValue << 8) | secondByte; + if (firstByte >= 0x81 && firstByte <= 0xfe) { + if ((secondByte >= 0x40 && secondByte <= 0x7e) || + (secondByte >= 80 && secondByte <= 0xfe)) { + break buildChar; + } + if (secondByte >= 0x30 && secondByte <= 0x39) { + thirdByte = iter.nextByte(det); + if (thirdByte >= 0x81 && thirdByte <= 0xfe) { + fourthByte = iter.nextByte(det); + if (fourthByte >= 0x30 && fourthByte <= 0x39) { + iter.charValue = + (iter.charValue << 16) | (thirdByte << 8) | fourthByte; + break buildChar; + } + } + } + iter.error = true; + break buildChar; + } + } + return iter.done == false; + } +} +exports.gb_18030 = gb_18030; +//# sourceMappingURL=mbcs.js.map \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/chardet/lib/encoding/mbcs.js.map b/includes/external/addressbook/node_modules/chardet/lib/encoding/mbcs.js.map new file mode 100644 index 0000000..e0ca346 --- /dev/null +++ b/includes/external/addressbook/node_modules/chardet/lib/encoding/mbcs.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mbcs.js","sourceRoot":"","sources":["../../src/encoding/mbcs.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/chardet/lib/encoding/sbcs.d.ts b/includes/external/addressbook/node_modules/chardet/lib/encoding/sbcs.d.ts new file mode 100644 index 0000000..d3de805 --- /dev/null +++ b/includes/external/addressbook/node_modules/chardet/lib/encoding/sbcs.d.ts @@ -0,0 +1,75 @@ +import { Context, Recogniser } from '../encoding/index'; +import { Match } from '../match'; +declare class NGramsPlusLang { + fLang: string; + fNGrams: number[]; + constructor(la: string, ng: number[]); +} +declare class sbcs implements Recogniser { + spaceChar: number; + private nGramLang?; + ngrams(): NGramsPlusLang[] | number[]; + byteMap(): number[]; + name(_input: Context): string; + language(): string | undefined; + match(det: Context): Match | null; +} +export declare class ISO_8859_1 extends sbcs { + byteMap(): number[]; + ngrams(): NGramsPlusLang[]; + name(input: Context): string; +} +export declare class ISO_8859_2 extends sbcs { + byteMap(): number[]; + ngrams(): NGramsPlusLang[]; + name(det: Context): string; +} +export declare class ISO_8859_5 extends sbcs { + byteMap(): number[]; + ngrams(): number[]; + name(): string; + language(): string; +} +export declare class ISO_8859_6 extends sbcs { + byteMap(): number[]; + ngrams(): number[]; + name(): string; + language(): string; +} +export declare class ISO_8859_7 extends sbcs { + byteMap(): number[]; + ngrams(): number[]; + name(det: Context): string; + language(): string; +} +export declare class ISO_8859_8 extends sbcs { + byteMap(): number[]; + ngrams(): NGramsPlusLang[]; + name(det: Context): string; + language(): string; +} +export declare class ISO_8859_9 extends sbcs { + byteMap(): number[]; + ngrams(): number[]; + name(det: Context): string; + language(): string; +} +export declare class windows_1251 extends sbcs { + byteMap(): number[]; + ngrams(): number[]; + name(): string; + language(): string; +} +export declare class windows_1256 extends sbcs { + byteMap(): number[]; + ngrams(): number[]; + name(): string; + language(): string; +} +export declare class KOI8_R extends sbcs { + byteMap(): number[]; + ngrams(): number[]; + name(): string; + language(): string; +} +export {}; diff --git a/includes/external/addressbook/node_modules/chardet/lib/encoding/sbcs.js b/includes/external/addressbook/node_modules/chardet/lib/encoding/sbcs.js new file mode 100644 index 0000000..3938b72 --- /dev/null +++ b/includes/external/addressbook/node_modules/chardet/lib/encoding/sbcs.js @@ -0,0 +1,764 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.KOI8_R = exports.windows_1256 = exports.windows_1251 = exports.ISO_8859_9 = exports.ISO_8859_8 = exports.ISO_8859_7 = exports.ISO_8859_6 = exports.ISO_8859_5 = exports.ISO_8859_2 = exports.ISO_8859_1 = void 0; +const match_1 = __importDefault(require("../match")); +const N_GRAM_MASK = 0xffffff; +class NGramParser { + constructor(theNgramList, theByteMap) { + this.byteIndex = 0; + this.ngram = 0; + this.ngramCount = 0; + this.hitCount = 0; + this.spaceChar = 0x20; + this.ngramList = theNgramList; + this.byteMap = theByteMap; + } + search(table, value) { + let index = 0; + if (table[index + 32] <= value) + index += 32; + if (table[index + 16] <= value) + index += 16; + if (table[index + 8] <= value) + index += 8; + if (table[index + 4] <= value) + index += 4; + if (table[index + 2] <= value) + index += 2; + if (table[index + 1] <= value) + index += 1; + if (table[index] > value) + index -= 1; + if (index < 0 || table[index] != value) + return -1; + return index; + } + lookup(thisNgram) { + this.ngramCount += 1; + if (this.search(this.ngramList, thisNgram) >= 0) { + this.hitCount += 1; + } + } + addByte(b) { + this.ngram = ((this.ngram << 8) + (b & 0xff)) & N_GRAM_MASK; + this.lookup(this.ngram); + } + nextByte(det) { + if (this.byteIndex >= det.inputLen) + return -1; + return det.inputBytes[this.byteIndex++] & 0xff; + } + parse(det, spaceCh) { + let b, ignoreSpace = false; + this.spaceChar = spaceCh; + while ((b = this.nextByte(det)) >= 0) { + const mb = this.byteMap[b]; + if (mb != 0) { + if (!(mb == this.spaceChar && ignoreSpace)) { + this.addByte(mb); + } + ignoreSpace = mb == this.spaceChar; + } + } + this.addByte(this.spaceChar); + const rawPercent = this.hitCount / this.ngramCount; + if (rawPercent > 0.33) + return 98; + return Math.floor(rawPercent * 300.0); + } +} +class NGramsPlusLang { + constructor(la, ng) { + this.fLang = la; + this.fNGrams = ng; + } +} +const isFlatNgrams = (val) => Array.isArray(val) && isFinite(val[0]); +class sbcs { + constructor() { + this.spaceChar = 0x20; + this.nGramLang = undefined; + } + ngrams() { + return []; + } + byteMap() { + return []; + } + name(_input) { + return 'sbcs'; + } + language() { + return this.nGramLang; + } + match(det) { + this.nGramLang = undefined; + const ngrams = this.ngrams(); + if (isFlatNgrams(ngrams)) { + const parser = new NGramParser(ngrams, this.byteMap()); + const confidence = parser.parse(det, this.spaceChar); + return confidence <= 0 ? null : (0, match_1.default)(det, this, confidence); + } + let bestConfidence = -1; + for (let i = ngrams.length - 1; i >= 0; i--) { + const ngl = ngrams[i]; + const parser = new NGramParser(ngl.fNGrams, this.byteMap()); + const confidence = parser.parse(det, this.spaceChar); + if (confidence > bestConfidence) { + bestConfidence = confidence; + this.nGramLang = ngl.fLang; + } + } + return bestConfidence <= 0 ? null : (0, match_1.default)(det, this, bestConfidence); + } +} +class ISO_8859_1 extends sbcs { + byteMap() { + return [ + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, + 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, + 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0xaa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0xb5, 0x20, 0x20, 0x20, 0x20, 0xba, 0x20, 0x20, 0x20, 0x20, 0x20, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, + 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0x20, + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, + 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0x20, 0xf8, 0xf9, 0xfa, 0xfb, + 0xfc, 0xfd, 0xfe, 0xff, + ]; + } + ngrams() { + return [ + new NGramsPlusLang('da', [ + 0x206166, 0x206174, 0x206465, 0x20656e, 0x206572, 0x20666f, 0x206861, + 0x206920, 0x206d65, 0x206f67, 0x2070e5, 0x207369, 0x207374, 0x207469, + 0x207669, 0x616620, 0x616e20, 0x616e64, 0x617220, 0x617420, 0x646520, + 0x64656e, 0x646572, 0x646574, 0x652073, 0x656420, 0x656465, 0x656e20, + 0x656e64, 0x657220, 0x657265, 0x657320, 0x657420, 0x666f72, 0x676520, + 0x67656e, 0x676572, 0x696765, 0x696c20, 0x696e67, 0x6b6520, 0x6b6b65, + 0x6c6572, 0x6c6967, 0x6c6c65, 0x6d6564, 0x6e6465, 0x6e6520, 0x6e6720, + 0x6e6765, 0x6f6720, 0x6f6d20, 0x6f7220, 0x70e520, 0x722064, 0x722065, + 0x722073, 0x726520, 0x737465, 0x742073, 0x746520, 0x746572, 0x74696c, + 0x766572, + ]), + new NGramsPlusLang('de', [ + 0x20616e, 0x206175, 0x206265, 0x206461, 0x206465, 0x206469, 0x206569, + 0x206765, 0x206861, 0x20696e, 0x206d69, 0x207363, 0x207365, 0x20756e, + 0x207665, 0x20766f, 0x207765, 0x207a75, 0x626572, 0x636820, 0x636865, + 0x636874, 0x646173, 0x64656e, 0x646572, 0x646965, 0x652064, 0x652073, + 0x65696e, 0x656974, 0x656e20, 0x657220, 0x657320, 0x67656e, 0x68656e, + 0x687420, 0x696368, 0x696520, 0x696e20, 0x696e65, 0x697420, 0x6c6963, + 0x6c6c65, 0x6e2061, 0x6e2064, 0x6e2073, 0x6e6420, 0x6e6465, 0x6e6520, + 0x6e6720, 0x6e6765, 0x6e7465, 0x722064, 0x726465, 0x726569, 0x736368, + 0x737465, 0x742064, 0x746520, 0x74656e, 0x746572, 0x756e64, 0x756e67, + 0x766572, + ]), + new NGramsPlusLang('en', [ + 0x206120, 0x20616e, 0x206265, 0x20636f, 0x20666f, 0x206861, 0x206865, + 0x20696e, 0x206d61, 0x206f66, 0x207072, 0x207265, 0x207361, 0x207374, + 0x207468, 0x20746f, 0x207768, 0x616964, 0x616c20, 0x616e20, 0x616e64, + 0x617320, 0x617420, 0x617465, 0x617469, 0x642061, 0x642074, 0x652061, + 0x652073, 0x652074, 0x656420, 0x656e74, 0x657220, 0x657320, 0x666f72, + 0x686174, 0x686520, 0x686572, 0x696420, 0x696e20, 0x696e67, 0x696f6e, + 0x697320, 0x6e2061, 0x6e2074, 0x6e6420, 0x6e6720, 0x6e7420, 0x6f6620, + 0x6f6e20, 0x6f7220, 0x726520, 0x727320, 0x732061, 0x732074, 0x736169, + 0x737420, 0x742074, 0x746572, 0x746861, 0x746865, 0x74696f, 0x746f20, + 0x747320, + ]), + new NGramsPlusLang('es', [ + 0x206120, 0x206361, 0x20636f, 0x206465, 0x20656c, 0x20656e, 0x206573, + 0x20696e, 0x206c61, 0x206c6f, 0x207061, 0x20706f, 0x207072, 0x207175, + 0x207265, 0x207365, 0x20756e, 0x207920, 0x612063, 0x612064, 0x612065, + 0x61206c, 0x612070, 0x616369, 0x61646f, 0x616c20, 0x617220, 0x617320, + 0x6369f3, 0x636f6e, 0x646520, 0x64656c, 0x646f20, 0x652064, 0x652065, + 0x65206c, 0x656c20, 0x656e20, 0x656e74, 0x657320, 0x657374, 0x69656e, + 0x69f36e, 0x6c6120, 0x6c6f73, 0x6e2065, 0x6e7465, 0x6f2064, 0x6f2065, + 0x6f6e20, 0x6f7220, 0x6f7320, 0x706172, 0x717565, 0x726120, 0x726573, + 0x732064, 0x732065, 0x732070, 0x736520, 0x746520, 0x746f20, 0x756520, + 0xf36e20, + ]), + new NGramsPlusLang('fr', [ + 0x206175, 0x20636f, 0x206461, 0x206465, 0x206475, 0x20656e, 0x206574, + 0x206c61, 0x206c65, 0x207061, 0x20706f, 0x207072, 0x207175, 0x207365, + 0x20736f, 0x20756e, 0x20e020, 0x616e74, 0x617469, 0x636520, 0x636f6e, + 0x646520, 0x646573, 0x647520, 0x652061, 0x652063, 0x652064, 0x652065, + 0x65206c, 0x652070, 0x652073, 0x656e20, 0x656e74, 0x657220, 0x657320, + 0x657420, 0x657572, 0x696f6e, 0x697320, 0x697420, 0x6c6120, 0x6c6520, + 0x6c6573, 0x6d656e, 0x6e2064, 0x6e6520, 0x6e7320, 0x6e7420, 0x6f6e20, + 0x6f6e74, 0x6f7572, 0x717565, 0x72206c, 0x726520, 0x732061, 0x732064, + 0x732065, 0x73206c, 0x732070, 0x742064, 0x746520, 0x74696f, 0x756520, + 0x757220, + ]), + new NGramsPlusLang('it', [ + 0x20616c, 0x206368, 0x20636f, 0x206465, 0x206469, 0x206520, 0x20696c, + 0x20696e, 0x206c61, 0x207065, 0x207072, 0x20756e, 0x612063, 0x612064, + 0x612070, 0x612073, 0x61746f, 0x636865, 0x636f6e, 0x64656c, 0x646920, + 0x652061, 0x652063, 0x652064, 0x652069, 0x65206c, 0x652070, 0x652073, + 0x656c20, 0x656c6c, 0x656e74, 0x657220, 0x686520, 0x692061, 0x692063, + 0x692064, 0x692073, 0x696120, 0x696c20, 0x696e20, 0x696f6e, 0x6c6120, + 0x6c6520, 0x6c6920, 0x6c6c61, 0x6e6520, 0x6e6920, 0x6e6f20, 0x6e7465, + 0x6f2061, 0x6f2064, 0x6f2069, 0x6f2073, 0x6f6e20, 0x6f6e65, 0x706572, + 0x726120, 0x726520, 0x736920, 0x746120, 0x746520, 0x746920, 0x746f20, + 0x7a696f, + ]), + new NGramsPlusLang('nl', [ + 0x20616c, 0x206265, 0x206461, 0x206465, 0x206469, 0x206565, 0x20656e, + 0x206765, 0x206865, 0x20696e, 0x206d61, 0x206d65, 0x206f70, 0x207465, + 0x207661, 0x207665, 0x20766f, 0x207765, 0x207a69, 0x61616e, 0x616172, + 0x616e20, 0x616e64, 0x617220, 0x617420, 0x636874, 0x646520, 0x64656e, + 0x646572, 0x652062, 0x652076, 0x65656e, 0x656572, 0x656e20, 0x657220, + 0x657273, 0x657420, 0x67656e, 0x686574, 0x696520, 0x696e20, 0x696e67, + 0x697320, 0x6e2062, 0x6e2064, 0x6e2065, 0x6e2068, 0x6e206f, 0x6e2076, + 0x6e6465, 0x6e6720, 0x6f6e64, 0x6f6f72, 0x6f7020, 0x6f7220, 0x736368, + 0x737465, 0x742064, 0x746520, 0x74656e, 0x746572, 0x76616e, 0x766572, + 0x766f6f, + ]), + new NGramsPlusLang('no', [ + 0x206174, 0x206176, 0x206465, 0x20656e, 0x206572, 0x20666f, 0x206861, + 0x206920, 0x206d65, 0x206f67, 0x2070e5, 0x207365, 0x20736b, 0x20736f, + 0x207374, 0x207469, 0x207669, 0x20e520, 0x616e64, 0x617220, 0x617420, + 0x646520, 0x64656e, 0x646574, 0x652073, 0x656420, 0x656e20, 0x656e65, + 0x657220, 0x657265, 0x657420, 0x657474, 0x666f72, 0x67656e, 0x696b6b, + 0x696c20, 0x696e67, 0x6b6520, 0x6b6b65, 0x6c6520, 0x6c6c65, 0x6d6564, + 0x6d656e, 0x6e2073, 0x6e6520, 0x6e6720, 0x6e6765, 0x6e6e65, 0x6f6720, + 0x6f6d20, 0x6f7220, 0x70e520, 0x722073, 0x726520, 0x736f6d, 0x737465, + 0x742073, 0x746520, 0x74656e, 0x746572, 0x74696c, 0x747420, 0x747465, + 0x766572, + ]), + new NGramsPlusLang('pt', [ + 0x206120, 0x20636f, 0x206461, 0x206465, 0x20646f, 0x206520, 0x206573, + 0x206d61, 0x206e6f, 0x206f20, 0x207061, 0x20706f, 0x207072, 0x207175, + 0x207265, 0x207365, 0x20756d, 0x612061, 0x612063, 0x612064, 0x612070, + 0x616465, 0x61646f, 0x616c20, 0x617220, 0x617261, 0x617320, 0x636f6d, + 0x636f6e, 0x646120, 0x646520, 0x646f20, 0x646f73, 0x652061, 0x652064, + 0x656d20, 0x656e74, 0x657320, 0x657374, 0x696120, 0x696361, 0x6d656e, + 0x6e7465, 0x6e746f, 0x6f2061, 0x6f2063, 0x6f2064, 0x6f2065, 0x6f2070, + 0x6f7320, 0x706172, 0x717565, 0x726120, 0x726573, 0x732061, 0x732064, + 0x732065, 0x732070, 0x737461, 0x746520, 0x746f20, 0x756520, 0xe36f20, + 0xe7e36f, + ]), + new NGramsPlusLang('sv', [ + 0x206174, 0x206176, 0x206465, 0x20656e, 0x2066f6, 0x206861, 0x206920, + 0x20696e, 0x206b6f, 0x206d65, 0x206f63, 0x2070e5, 0x20736b, 0x20736f, + 0x207374, 0x207469, 0x207661, 0x207669, 0x20e472, 0x616465, 0x616e20, + 0x616e64, 0x617220, 0x617474, 0x636820, 0x646520, 0x64656e, 0x646572, + 0x646574, 0x656420, 0x656e20, 0x657220, 0x657420, 0x66f672, 0x67656e, + 0x696c6c, 0x696e67, 0x6b6120, 0x6c6c20, 0x6d6564, 0x6e2073, 0x6e6120, + 0x6e6465, 0x6e6720, 0x6e6765, 0x6e696e, 0x6f6368, 0x6f6d20, 0x6f6e20, + 0x70e520, 0x722061, 0x722073, 0x726120, 0x736b61, 0x736f6d, 0x742073, + 0x746120, 0x746520, 0x746572, 0x74696c, 0x747420, 0x766172, 0xe47220, + 0xf67220, + ]), + ]; + } + name(input) { + return input && input.c1Bytes ? 'windows-1252' : 'ISO-8859-1'; + } +} +exports.ISO_8859_1 = ISO_8859_1; +class ISO_8859_2 extends sbcs { + byteMap() { + return [ + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, + 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, + 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0xb1, 0x20, 0xb3, 0x20, 0xb5, 0xb6, 0x20, + 0x20, 0xb9, 0xba, 0xbb, 0xbc, 0x20, 0xbe, 0xbf, 0x20, 0xb1, 0x20, 0xb3, + 0x20, 0xb5, 0xb6, 0xb7, 0x20, 0xb9, 0xba, 0xbb, 0xbc, 0x20, 0xbe, 0xbf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, + 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0x20, + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, + 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0x20, 0xf8, 0xf9, 0xfa, 0xfb, + 0xfc, 0xfd, 0xfe, 0x20, + ]; + } + ngrams() { + return [ + new NGramsPlusLang('cs', [ + 0x206120, 0x206279, 0x20646f, 0x206a65, 0x206e61, 0x206e65, 0x206f20, + 0x206f64, 0x20706f, 0x207072, 0x2070f8, 0x20726f, 0x207365, 0x20736f, + 0x207374, 0x20746f, 0x207620, 0x207679, 0x207a61, 0x612070, 0x636520, + 0x636820, 0x652070, 0x652073, 0x652076, 0x656d20, 0x656eed, 0x686f20, + 0x686f64, 0x697374, 0x6a6520, 0x6b7465, 0x6c6520, 0x6c6920, 0x6e6120, + 0x6ee920, 0x6eec20, 0x6eed20, 0x6f2070, 0x6f646e, 0x6f6a69, 0x6f7374, + 0x6f7520, 0x6f7661, 0x706f64, 0x706f6a, 0x70726f, 0x70f865, 0x736520, + 0x736f75, 0x737461, 0x737469, 0x73746e, 0x746572, 0x746eed, 0x746f20, + 0x752070, 0xbe6520, 0xe16eed, 0xe9686f, 0xed2070, 0xed2073, 0xed6d20, + 0xf86564, + ]), + new NGramsPlusLang('hu', [ + 0x206120, 0x20617a, 0x206265, 0x206567, 0x20656c, 0x206665, 0x206861, + 0x20686f, 0x206973, 0x206b65, 0x206b69, 0x206bf6, 0x206c65, 0x206d61, + 0x206d65, 0x206d69, 0x206e65, 0x20737a, 0x207465, 0x20e973, 0x612061, + 0x61206b, 0x61206d, 0x612073, 0x616b20, 0x616e20, 0x617a20, 0x62616e, + 0x62656e, 0x656779, 0x656b20, 0x656c20, 0x656c65, 0x656d20, 0x656e20, + 0x657265, 0x657420, 0x657465, 0x657474, 0x677920, 0x686f67, 0x696e74, + 0x697320, 0x6b2061, 0x6bf67a, 0x6d6567, 0x6d696e, 0x6e2061, 0x6e616b, + 0x6e656b, 0x6e656d, 0x6e7420, 0x6f6779, 0x732061, 0x737a65, 0x737a74, + 0x737ae1, 0x73e967, 0x742061, 0x747420, 0x74e173, 0x7a6572, 0xe16e20, + 0xe97320, + ]), + new NGramsPlusLang('pl', [ + 0x20637a, 0x20646f, 0x206920, 0x206a65, 0x206b6f, 0x206d61, 0x206d69, + 0x206e61, 0x206e69, 0x206f64, 0x20706f, 0x207072, 0x207369, 0x207720, + 0x207769, 0x207779, 0x207a20, 0x207a61, 0x612070, 0x612077, 0x616e69, + 0x636820, 0x637a65, 0x637a79, 0x646f20, 0x647a69, 0x652070, 0x652073, + 0x652077, 0x65207a, 0x65676f, 0x656a20, 0x656d20, 0x656e69, 0x676f20, + 0x696120, 0x696520, 0x69656a, 0x6b6120, 0x6b6920, 0x6b6965, 0x6d6965, + 0x6e6120, 0x6e6961, 0x6e6965, 0x6f2070, 0x6f7761, 0x6f7769, 0x706f6c, + 0x707261, 0x70726f, 0x70727a, 0x727a65, 0x727a79, 0x7369ea, 0x736b69, + 0x737461, 0x776965, 0x796368, 0x796d20, 0x7a6520, 0x7a6965, 0x7a7920, + 0xf37720, + ]), + new NGramsPlusLang('ro', [ + 0x206120, 0x206163, 0x206361, 0x206365, 0x20636f, 0x206375, 0x206465, + 0x206469, 0x206c61, 0x206d61, 0x207065, 0x207072, 0x207365, 0x2073e3, + 0x20756e, 0x20ba69, 0x20ee6e, 0x612063, 0x612064, 0x617265, 0x617420, + 0x617465, 0x617520, 0x636172, 0x636f6e, 0x637520, 0x63e320, 0x646520, + 0x652061, 0x652063, 0x652064, 0x652070, 0x652073, 0x656120, 0x656920, + 0x656c65, 0x656e74, 0x657374, 0x692061, 0x692063, 0x692064, 0x692070, + 0x696520, 0x696920, 0x696e20, 0x6c6120, 0x6c6520, 0x6c6f72, 0x6c7569, + 0x6e6520, 0x6e7472, 0x6f7220, 0x70656e, 0x726520, 0x726561, 0x727520, + 0x73e320, 0x746520, 0x747275, 0x74e320, 0x756920, 0x756c20, 0xba6920, + 0xee6e20, + ]), + ]; + } + name(det) { + return det && det.c1Bytes ? 'windows-1250' : 'ISO-8859-2'; + } +} +exports.ISO_8859_2 = ISO_8859_2; +class ISO_8859_5 extends sbcs { + byteMap() { + return [ + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, + 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, + 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x20, 0xfe, 0xff, 0xd0, 0xd1, 0xd2, 0xd3, + 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, + 0xec, 0xed, 0xee, 0xef, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, + 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0x20, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, + 0xfc, 0x20, 0xfe, 0xff, + ]; + } + ngrams() { + return [ + 0x20d220, 0x20d2de, 0x20d4de, 0x20d7d0, 0x20d820, 0x20dad0, 0x20dade, + 0x20ddd0, 0x20ddd5, 0x20ded1, 0x20dfde, 0x20dfe0, 0x20e0d0, 0x20e1de, + 0x20e1e2, 0x20e2de, 0x20e7e2, 0x20ede2, 0xd0ddd8, 0xd0e2ec, 0xd3de20, + 0xd5dbec, 0xd5ddd8, 0xd5e1e2, 0xd5e220, 0xd820df, 0xd8d520, 0xd8d820, + 0xd8ef20, 0xdbd5dd, 0xdbd820, 0xdbecdd, 0xddd020, 0xddd520, 0xddd8d5, + 0xddd8ef, 0xddde20, 0xddded2, 0xde20d2, 0xde20df, 0xde20e1, 0xded220, + 0xded2d0, 0xded3de, 0xded920, 0xdedbec, 0xdedc20, 0xdee1e2, 0xdfdedb, + 0xdfe0d5, 0xdfe0d8, 0xdfe0de, 0xe0d0d2, 0xe0d5d4, 0xe1e2d0, 0xe1e2d2, + 0xe1e2d8, 0xe1ef20, 0xe2d5db, 0xe2de20, 0xe2dee0, 0xe2ec20, 0xe7e2de, + 0xebe520, + ]; + } + name() { + return 'ISO-8859-5'; + } + language() { + return 'ru'; + } +} +exports.ISO_8859_5 = ISO_8859_5; +class ISO_8859_6 extends sbcs { + byteMap() { + return [ + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, + 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, + 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, + 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + 0xd8, 0xd9, 0xda, 0x20, 0x20, 0x20, 0x20, 0x20, 0xe0, 0xe1, 0xe2, 0xe3, + 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, + ]; + } + ngrams() { + return [ + 0x20c7e4, 0x20c7e6, 0x20c8c7, 0x20d9e4, 0x20e1ea, 0x20e4e4, 0x20e5e6, + 0x20e8c7, 0xc720c7, 0xc7c120, 0xc7ca20, 0xc7d120, 0xc7e420, 0xc7e4c3, + 0xc7e4c7, 0xc7e4c8, 0xc7e4ca, 0xc7e4cc, 0xc7e4cd, 0xc7e4cf, 0xc7e4d3, + 0xc7e4d9, 0xc7e4e2, 0xc7e4e5, 0xc7e4e8, 0xc7e4ea, 0xc7e520, 0xc7e620, + 0xc7e6ca, 0xc820c7, 0xc920c7, 0xc920e1, 0xc920e4, 0xc920e5, 0xc920e8, + 0xca20c7, 0xcf20c7, 0xcfc920, 0xd120c7, 0xd1c920, 0xd320c7, 0xd920c7, + 0xd9e4e9, 0xe1ea20, 0xe420c7, 0xe4c920, 0xe4e920, 0xe4ea20, 0xe520c7, + 0xe5c720, 0xe5c920, 0xe5e620, 0xe620c7, 0xe720c7, 0xe7c720, 0xe8c7e4, + 0xe8e620, 0xe920c7, 0xea20c7, 0xea20e5, 0xea20e8, 0xeac920, 0xead120, + 0xeae620, + ]; + } + name() { + return 'ISO-8859-6'; + } + language() { + return 'ar'; + } +} +exports.ISO_8859_6 = ISO_8859_6; +class ISO_8859_7 extends sbcs { + byteMap() { + return [ + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, + 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, + 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0xa1, 0xa2, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0xdc, 0x20, 0xdd, 0xde, 0xdf, 0x20, 0xfc, 0x20, 0xfd, 0xfe, + 0xc0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, + 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0x20, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, 0xfa, 0xfb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, + 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, + 0xfc, 0xfd, 0xfe, 0x20, + ]; + } + ngrams() { + return [ + 0x20e1ed, 0x20e1f0, 0x20e3e9, 0x20e4e9, 0x20e5f0, 0x20e720, 0x20eae1, + 0x20ece5, 0x20ede1, 0x20ef20, 0x20f0e1, 0x20f0ef, 0x20f0f1, 0x20f3f4, + 0x20f3f5, 0x20f4e7, 0x20f4ef, 0xdfe120, 0xe120e1, 0xe120f4, 0xe1e920, + 0xe1ed20, 0xe1f0fc, 0xe1f220, 0xe3e9e1, 0xe5e920, 0xe5f220, 0xe720f4, + 0xe7ed20, 0xe7f220, 0xe920f4, 0xe9e120, 0xe9eade, 0xe9f220, 0xeae1e9, + 0xeae1f4, 0xece520, 0xed20e1, 0xed20e5, 0xed20f0, 0xede120, 0xeff220, + 0xeff520, 0xf0eff5, 0xf0f1ef, 0xf0fc20, 0xf220e1, 0xf220e5, 0xf220ea, + 0xf220f0, 0xf220f4, 0xf3e520, 0xf3e720, 0xf3f4ef, 0xf4e120, 0xf4e1e9, + 0xf4e7ed, 0xf4e7f2, 0xf4e9ea, 0xf4ef20, 0xf4eff5, 0xf4f9ed, 0xf9ed20, + 0xfeed20, + ]; + } + name(det) { + return det && det.c1Bytes ? 'windows-1253' : 'ISO-8859-7'; + } + language() { + return 'el'; + } +} +exports.ISO_8859_7 = ISO_8859_7; +class ISO_8859_8 extends sbcs { + byteMap() { + return [ + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, + 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, + 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0xb5, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xe0, 0xe1, 0xe2, 0xe3, + 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0x20, + 0x20, 0x20, 0x20, 0x20, + ]; + } + ngrams() { + return [ + new NGramsPlusLang('he', [ + 0x20e0e5, 0x20e0e7, 0x20e0e9, 0x20e0fa, 0x20e1e9, 0x20e1ee, 0x20e4e0, + 0x20e4e5, 0x20e4e9, 0x20e4ee, 0x20e4f2, 0x20e4f9, 0x20e4fa, 0x20ece0, + 0x20ece4, 0x20eee0, 0x20f2ec, 0x20f9ec, 0xe0fa20, 0xe420e0, 0xe420e1, + 0xe420e4, 0xe420ec, 0xe420ee, 0xe420f9, 0xe4e5e0, 0xe5e020, 0xe5ed20, + 0xe5ef20, 0xe5f820, 0xe5fa20, 0xe920e4, 0xe9e420, 0xe9e5fa, 0xe9e9ed, + 0xe9ed20, 0xe9ef20, 0xe9f820, 0xe9fa20, 0xec20e0, 0xec20e4, 0xece020, + 0xece420, 0xed20e0, 0xed20e1, 0xed20e4, 0xed20ec, 0xed20ee, 0xed20f9, + 0xeee420, 0xef20e4, 0xf0e420, 0xf0e920, 0xf0e9ed, 0xf2ec20, 0xf820e4, + 0xf8e9ed, 0xf9ec20, 0xfa20e0, 0xfa20e1, 0xfa20e4, 0xfa20ec, 0xfa20ee, + 0xfa20f9, + ]), + new NGramsPlusLang('he', [ + 0x20e0e5, 0x20e0ec, 0x20e4e9, 0x20e4ec, 0x20e4ee, 0x20e4f0, 0x20e9f0, + 0x20ecf2, 0x20ecf9, 0x20ede5, 0x20ede9, 0x20efe5, 0x20efe9, 0x20f8e5, + 0x20f8e9, 0x20fae0, 0x20fae5, 0x20fae9, 0xe020e4, 0xe020ec, 0xe020ed, + 0xe020fa, 0xe0e420, 0xe0e5e4, 0xe0ec20, 0xe0ee20, 0xe120e4, 0xe120ed, + 0xe120fa, 0xe420e4, 0xe420e9, 0xe420ec, 0xe420ed, 0xe420ef, 0xe420f8, + 0xe420fa, 0xe4ec20, 0xe5e020, 0xe5e420, 0xe7e020, 0xe9e020, 0xe9e120, + 0xe9e420, 0xec20e4, 0xec20ed, 0xec20fa, 0xecf220, 0xecf920, 0xede9e9, + 0xede9f0, 0xede9f8, 0xee20e4, 0xee20ed, 0xee20fa, 0xeee120, 0xeee420, + 0xf2e420, 0xf920e4, 0xf920ed, 0xf920fa, 0xf9e420, 0xfae020, 0xfae420, + 0xfae5e9, + ]), + ]; + } + name(det) { + return det && det.c1Bytes ? 'windows-1255' : 'ISO-8859-8'; + } + language() { + return 'he'; + } +} +exports.ISO_8859_8 = ISO_8859_8; +class ISO_8859_9 extends sbcs { + byteMap() { + return [ + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, + 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, + 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0xaa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0xb5, 0x20, 0x20, 0x20, 0x20, 0xba, 0x20, 0x20, 0x20, 0x20, 0x20, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, + 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0x20, + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x69, 0xfe, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, + 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0x20, 0xf8, 0xf9, 0xfa, 0xfb, + 0xfc, 0xfd, 0xfe, 0xff, + ]; + } + ngrams() { + return [ + 0x206261, 0x206269, 0x206275, 0x206461, 0x206465, 0x206765, 0x206861, + 0x20696c, 0x206b61, 0x206b6f, 0x206d61, 0x206f6c, 0x207361, 0x207461, + 0x207665, 0x207961, 0x612062, 0x616b20, 0x616c61, 0x616d61, 0x616e20, + 0x616efd, 0x617220, 0x617261, 0x6172fd, 0x6173fd, 0x617961, 0x626972, + 0x646120, 0x646520, 0x646920, 0x652062, 0x65206b, 0x656469, 0x656e20, + 0x657220, 0x657269, 0x657369, 0x696c65, 0x696e20, 0x696e69, 0x697220, + 0x6c616e, 0x6c6172, 0x6c6520, 0x6c6572, 0x6e2061, 0x6e2062, 0x6e206b, + 0x6e6461, 0x6e6465, 0x6e6520, 0x6e6920, 0x6e696e, 0x6efd20, 0x72696e, + 0x72fd6e, 0x766520, 0x796120, 0x796f72, 0xfd6e20, 0xfd6e64, 0xfd6efd, + 0xfdf0fd, + ]; + } + name(det) { + return det && det.c1Bytes ? 'windows-1254' : 'ISO-8859-9'; + } + language() { + return 'tr'; + } +} +exports.ISO_8859_9 = ISO_8859_9; +class windows_1251 extends sbcs { + byteMap() { + return [ + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, + 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, + 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x90, 0x83, 0x20, 0x83, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x9a, 0x20, 0x9c, 0x9d, 0x9e, 0x9f, + 0x90, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x9a, 0x20, + 0x9c, 0x9d, 0x9e, 0x9f, 0x20, 0xa2, 0xa2, 0xbc, 0x20, 0xb4, 0x20, 0x20, + 0xb8, 0x20, 0xba, 0x20, 0x20, 0x20, 0x20, 0xbf, 0x20, 0x20, 0xb3, 0xb3, + 0xb4, 0xb5, 0x20, 0x20, 0xb8, 0x20, 0xba, 0x20, 0xbc, 0xbe, 0xbe, 0xbf, + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, + 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, 0xe0, 0xe1, 0xe2, 0xe3, + 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, + 0xfc, 0xfd, 0xfe, 0xff, + ]; + } + ngrams() { + return [ + 0x20e220, 0x20e2ee, 0x20e4ee, 0x20e7e0, 0x20e820, 0x20eae0, 0x20eaee, + 0x20ede0, 0x20ede5, 0x20eee1, 0x20efee, 0x20eff0, 0x20f0e0, 0x20f1ee, + 0x20f1f2, 0x20f2ee, 0x20f7f2, 0x20fdf2, 0xe0ede8, 0xe0f2fc, 0xe3ee20, + 0xe5ebfc, 0xe5ede8, 0xe5f1f2, 0xe5f220, 0xe820ef, 0xe8e520, 0xe8e820, + 0xe8ff20, 0xebe5ed, 0xebe820, 0xebfced, 0xede020, 0xede520, 0xede8e5, + 0xede8ff, 0xedee20, 0xedeee2, 0xee20e2, 0xee20ef, 0xee20f1, 0xeee220, + 0xeee2e0, 0xeee3ee, 0xeee920, 0xeeebfc, 0xeeec20, 0xeef1f2, 0xefeeeb, + 0xeff0e5, 0xeff0e8, 0xeff0ee, 0xf0e0e2, 0xf0e5e4, 0xf1f2e0, 0xf1f2e2, + 0xf1f2e8, 0xf1ff20, 0xf2e5eb, 0xf2ee20, 0xf2eef0, 0xf2fc20, 0xf7f2ee, + 0xfbf520, + ]; + } + name() { + return 'windows-1251'; + } + language() { + return 'ru'; + } +} +exports.windows_1251 = windows_1251; +class windows_1256 extends sbcs { + byteMap() { + return [ + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, + 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, + 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x81, 0x20, 0x83, + 0x20, 0x20, 0x20, 0x20, 0x88, 0x20, 0x8a, 0x20, 0x9c, 0x8d, 0x8e, 0x8f, + 0x90, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x98, 0x20, 0x9a, 0x20, + 0x9c, 0x20, 0x20, 0x9f, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0xaa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0xb5, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, + 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0x20, + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, + 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + 0x20, 0x20, 0x20, 0x20, 0xf4, 0x20, 0x20, 0x20, 0x20, 0xf9, 0x20, 0xfb, + 0xfc, 0x20, 0x20, 0xff, + ]; + } + ngrams() { + return [ + 0x20c7e1, 0x20c7e4, 0x20c8c7, 0x20dae1, 0x20dded, 0x20e1e1, 0x20e3e4, + 0x20e6c7, 0xc720c7, 0xc7c120, 0xc7ca20, 0xc7d120, 0xc7e120, 0xc7e1c3, + 0xc7e1c7, 0xc7e1c8, 0xc7e1ca, 0xc7e1cc, 0xc7e1cd, 0xc7e1cf, 0xc7e1d3, + 0xc7e1da, 0xc7e1de, 0xc7e1e3, 0xc7e1e6, 0xc7e1ed, 0xc7e320, 0xc7e420, + 0xc7e4ca, 0xc820c7, 0xc920c7, 0xc920dd, 0xc920e1, 0xc920e3, 0xc920e6, + 0xca20c7, 0xcf20c7, 0xcfc920, 0xd120c7, 0xd1c920, 0xd320c7, 0xda20c7, + 0xdae1ec, 0xdded20, 0xe120c7, 0xe1c920, 0xe1ec20, 0xe1ed20, 0xe320c7, + 0xe3c720, 0xe3c920, 0xe3e420, 0xe420c7, 0xe520c7, 0xe5c720, 0xe6c7e1, + 0xe6e420, 0xec20c7, 0xed20c7, 0xed20e3, 0xed20e6, 0xedc920, 0xedd120, + 0xede420, + ]; + } + name() { + return 'windows-1256'; + } + language() { + return 'ar'; + } +} +exports.windows_1256 = windows_1256; +class KOI8_R extends sbcs { + byteMap() { + return [ + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, + 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, + 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xa3, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xa3, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, + 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xc0, 0xc1, 0xc2, 0xc3, + 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, + 0xdc, 0xdd, 0xde, 0xdf, + ]; + } + ngrams() { + return [ + 0x20c4cf, 0x20c920, 0x20cbc1, 0x20cbcf, 0x20cec1, 0x20cec5, 0x20cfc2, + 0x20d0cf, 0x20d0d2, 0x20d2c1, 0x20d3cf, 0x20d3d4, 0x20d4cf, 0x20d720, + 0x20d7cf, 0x20dac1, 0x20dcd4, 0x20ded4, 0xc1cec9, 0xc1d4d8, 0xc5ccd8, + 0xc5cec9, 0xc5d3d4, 0xc5d420, 0xc7cf20, 0xc920d0, 0xc9c520, 0xc9c920, + 0xc9d120, 0xccc5ce, 0xccc920, 0xccd8ce, 0xcec120, 0xcec520, 0xcec9c5, + 0xcec9d1, 0xcecf20, 0xcecfd7, 0xcf20d0, 0xcf20d3, 0xcf20d7, 0xcfc7cf, + 0xcfca20, 0xcfccd8, 0xcfcd20, 0xcfd3d4, 0xcfd720, 0xcfd7c1, 0xd0cfcc, + 0xd0d2c5, 0xd0d2c9, 0xd0d2cf, 0xd2c1d7, 0xd2c5c4, 0xd3d120, 0xd3d4c1, + 0xd3d4c9, 0xd3d4d7, 0xd4c5cc, 0xd4cf20, 0xd4cfd2, 0xd4d820, 0xd9c820, + 0xded4cf, + ]; + } + name() { + return 'KOI8-R'; + } + language() { + return 'ru'; + } +} +exports.KOI8_R = KOI8_R; +//# sourceMappingURL=sbcs.js.map \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/chardet/lib/encoding/sbcs.js.map b/includes/external/addressbook/node_modules/chardet/lib/encoding/sbcs.js.map new file mode 100644 index 0000000..5a6f83d --- /dev/null +++ b/includes/external/addressbook/node_modules/chardet/lib/encoding/sbcs.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sbcs.js","sourceRoot":"","sources":["../../src/encoding/sbcs.ts"],"names":[],"mappings":"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,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE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I,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAA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AO;QACL,OAAO;YACL,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;SACvB,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,OAAO;YACL,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,IAAI;QACF,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAlDD,gCAkDC;AAED,MAAa,UAAW,SAAQ,IAAI;IAClC,OAAO;QACL,OAAO;YACL,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;SACvB,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,OAAO;YACL,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,IAAI;QACF,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAlDD,gCAkDC;AAED,MAAa,UAAW,SAAQ,IAAI;IAClC,OAAO;QACL,OAAO;YACL,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;SACvB,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,OAAO;YACL,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,GAAY;QACf,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC;IAC5D,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAlDD,gCAkDC;AAED,MAAa,UAAW,SAAQ,IAAI;IAClC,OAAO;QACL,OAAO;YACL,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,I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IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,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I,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;SACvB,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,OAAO;YACL,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,IAAI;QACF,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAlDD,oCAkDC;AAED,MAAa,YAAa,SAAQ,IAAI;IACpC,OAAO;QACL,OAAO;YACL,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;SACvB,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,OAAO;YACL,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,IAAI;QACF,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAlDD,oCAkDC;AAED,MAAa,MAAO,SAAQ,IAAI;IAC9B,OAAO;QACL,OAAO;YACL,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;SACvB,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,OAAO;YACL,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YACpE,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,IAAI;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAlDD,wBAkDC"} \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/chardet/lib/encoding/unicode.d.ts b/includes/external/addressbook/node_modules/chardet/lib/encoding/unicode.d.ts new file mode 100644 index 0000000..4fb7fd7 --- /dev/null +++ b/includes/external/addressbook/node_modules/chardet/lib/encoding/unicode.d.ts @@ -0,0 +1,27 @@ +import { Context, Recogniser } from '.'; +import { Match } from '../match'; +export declare class UTF_16BE implements Recogniser { + name(): string; + match(det: Context): Match | null; +} +export declare class UTF_16LE implements Recogniser { + name(): string; + match(det: Context): Match | null; +} +interface WithGetChar { + getChar(input: Uint8Array, index: number): number; +} +declare class UTF_32 implements Recogniser, WithGetChar { + name(): string; + getChar(_input: Uint8Array, _index: number): number; + match(det: Context): Match | null; +} +export declare class UTF_32BE extends UTF_32 { + name(): string; + getChar(input: Uint8Array, index: number): number; +} +export declare class UTF_32LE extends UTF_32 { + name(): string; + getChar(input: Uint8Array, index: number): number; +} +export {}; diff --git a/includes/external/addressbook/node_modules/chardet/lib/encoding/unicode.js b/includes/external/addressbook/node_modules/chardet/lib/encoding/unicode.js new file mode 100644 index 0000000..54a4f54 --- /dev/null +++ b/includes/external/addressbook/node_modules/chardet/lib/encoding/unicode.js @@ -0,0 +1,109 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.UTF_32LE = exports.UTF_32BE = exports.UTF_16LE = exports.UTF_16BE = void 0; +const match_1 = __importDefault(require("../match")); +class UTF_16BE { + name() { + return 'UTF-16BE'; + } + match(det) { + const input = det.rawInput; + if (input.length >= 2 && + (input[0] & 0xff) == 0xfe && + (input[1] & 0xff) == 0xff) { + return (0, match_1.default)(det, this, 100); + } + return null; + } +} +exports.UTF_16BE = UTF_16BE; +class UTF_16LE { + name() { + return 'UTF-16LE'; + } + match(det) { + const input = det.rawInput; + if (input.length >= 2 && + (input[0] & 0xff) == 0xff && + (input[1] & 0xff) == 0xfe) { + if (input.length >= 4 && input[2] == 0x00 && input[3] == 0x00) { + return null; + } + return (0, match_1.default)(det, this, 100); + } + return null; + } +} +exports.UTF_16LE = UTF_16LE; +class UTF_32 { + name() { + return 'UTF-32'; + } + getChar(_input, _index) { + return -1; + } + match(det) { + let numValid = 0, numInvalid = 0, hasBOM = false, confidence = 0; + const limit = (det.rawLen / 4) * 4; + const input = det.rawInput; + if (limit == 0) { + return null; + } + if (this.getChar(input, 0) == 0x0000feff) { + hasBOM = true; + } + for (let i = 0; i < limit; i += 4) { + const ch = this.getChar(input, i); + if (ch < 0 || ch >= 0x10ffff || (ch >= 0xd800 && ch <= 0xdfff)) { + numInvalid += 1; + } + else { + numValid += 1; + } + } + if (hasBOM && numInvalid == 0) { + confidence = 100; + } + else if (hasBOM && numValid > numInvalid * 10) { + confidence = 80; + } + else if (numValid > 3 && numInvalid == 0) { + confidence = 100; + } + else if (numValid > 0 && numInvalid == 0) { + confidence = 80; + } + else if (numValid > numInvalid * 10) { + confidence = 25; + } + return confidence == 0 ? null : (0, match_1.default)(det, this, confidence); + } +} +class UTF_32BE extends UTF_32 { + name() { + return 'UTF-32BE'; + } + getChar(input, index) { + return (((input[index + 0] & 0xff) << 24) | + ((input[index + 1] & 0xff) << 16) | + ((input[index + 2] & 0xff) << 8) | + (input[index + 3] & 0xff)); + } +} +exports.UTF_32BE = UTF_32BE; +class UTF_32LE extends UTF_32 { + name() { + return 'UTF-32LE'; + } + getChar(input, index) { + return (((input[index + 3] & 0xff) << 24) | + ((input[index + 2] & 0xff) << 16) | + ((input[index + 1] & 0xff) << 8) | + (input[index + 0] & 0xff)); + } +} +exports.UTF_32LE = UTF_32LE; +//# sourceMappingURL=unicode.js.map \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/chardet/lib/encoding/unicode.js.map b/includes/external/addressbook/node_modules/chardet/lib/encoding/unicode.js.map new file mode 100644 index 0000000..8d22149 --- /dev/null +++ b/includes/external/addressbook/node_modules/chardet/lib/encoding/unicode.js.map @@ -0,0 +1 @@ +{"version":3,"file":"unicode.js","sourceRoot":"","sources":["../../src/encoding/unicode.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/chardet/lib/encoding/utf8.d.ts b/includes/external/addressbook/node_modules/chardet/lib/encoding/utf8.d.ts new file mode 100644 index 0000000..dd44558 --- /dev/null +++ b/includes/external/addressbook/node_modules/chardet/lib/encoding/utf8.d.ts @@ -0,0 +1,6 @@ +import { Context, Recogniser } from '.'; +import { Match } from '../match'; +export default class Utf8 implements Recogniser { + name(): string; + match(det: Context): Match | null; +} diff --git a/includes/external/addressbook/node_modules/chardet/lib/encoding/utf8.js b/includes/external/addressbook/node_modules/chardet/lib/encoding/utf8.js new file mode 100644 index 0000000..9976a9b --- /dev/null +++ b/includes/external/addressbook/node_modules/chardet/lib/encoding/utf8.js @@ -0,0 +1,72 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const match_1 = __importDefault(require("../match")); +class Utf8 { + name() { + return 'UTF-8'; + } + match(det) { + let hasBOM = false, numValid = 0, numInvalid = 0, trailBytes = 0, confidence; + const input = det.rawInput; + if (det.rawLen >= 3 && + (input[0] & 0xff) == 0xef && + (input[1] & 0xff) == 0xbb && + (input[2] & 0xff) == 0xbf) { + hasBOM = true; + } + for (let i = 0; i < det.rawLen; i++) { + const b = input[i]; + if ((b & 0x80) == 0) + continue; + if ((b & 0x0e0) == 0x0c0) { + trailBytes = 1; + } + else if ((b & 0x0f0) == 0x0e0) { + trailBytes = 2; + } + else if ((b & 0x0f8) == 0xf0) { + trailBytes = 3; + } + else { + numInvalid++; + if (numInvalid > 5) + break; + trailBytes = 0; + } + for (;;) { + i++; + if (i >= det.rawLen) + break; + if ((input[i] & 0xc0) != 0x080) { + numInvalid++; + break; + } + if (--trailBytes == 0) { + numValid++; + break; + } + } + } + confidence = 0; + if (hasBOM && numInvalid == 0) + confidence = 100; + else if (hasBOM && numValid > numInvalid * 10) + confidence = 80; + else if (numValid > 3 && numInvalid == 0) + confidence = 100; + else if (numValid > 0 && numInvalid == 0) + confidence = 80; + else if (numValid == 0 && numInvalid == 0) + confidence = 10; + else if (numValid > numInvalid * 10) + confidence = 25; + else + return null; + return (0, match_1.default)(det, this, confidence); + } +} +exports.default = Utf8; +//# sourceMappingURL=utf8.js.map \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/chardet/lib/encoding/utf8.js.map b/includes/external/addressbook/node_modules/chardet/lib/encoding/utf8.js.map new file mode 100644 index 0000000..de42d44 --- /dev/null +++ b/includes/external/addressbook/node_modules/chardet/lib/encoding/utf8.js.map @@ -0,0 +1 @@ +{"version":3,"file":"utf8.js","sourceRoot":"","sources":["../../src/encoding/utf8.ts"],"names":[],"mappings":";;;;;AACA,qDAAwC;AAExC,MAAqB,IAAI;IACvB,IAAI;QACF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,GAAY;QAChB,IAAI,MAAM,GAAG,KAAK,EAChB,QAAQ,GAAG,CAAC,EACZ,UAAU,GAAG,CAAC,EACd,UAAU,GAAG,CAAC,EACd,UAAU,CAAC;QACb,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC;QAE3B,IACE,GAAG,CAAC,MAAM,IAAI,CAAC;YACf,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI;YACzB,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI;YACzB,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,EACzB;YACA,MAAM,GAAG,IAAI,CAAC;SACf;QAGD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACnB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBAAE,SAAS;YAG9B,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,EAAE;gBACxB,UAAU,GAAG,CAAC,CAAC;aAChB;iBAAM,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,EAAE;gBAC/B,UAAU,GAAG,CAAC,CAAC;aAChB;iBAAM,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE;gBAC9B,UAAU,GAAG,CAAC,CAAC;aAChB;iBAAM;gBACL,UAAU,EAAE,CAAC;gBACb,IAAI,UAAU,GAAG,CAAC;oBAAE,MAAM;gBAC1B,UAAU,GAAG,CAAC,CAAC;aAChB;YAGD,SAAS;gBACP,CAAC,EAAE,CAAC;gBACJ,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM;oBAAE,MAAM;gBAE3B,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,EAAE;oBAC9B,UAAU,EAAE,CAAC;oBACb,MAAM;iBACP;gBACD,IAAI,EAAE,UAAU,IAAI,CAAC,EAAE;oBACrB,QAAQ,EAAE,CAAC;oBACX,MAAM;iBACP;aACF;SACF;QAID,UAAU,GAAG,CAAC,CAAC;QACf,IAAI,MAAM,IAAI,UAAU,IAAI,CAAC;YAAE,UAAU,GAAG,GAAG,CAAC;aAC3C,IAAI,MAAM,IAAI,QAAQ,GAAG,UAAU,GAAG,EAAE;YAAE,UAAU,GAAG,EAAE,CAAC;aAC1D,IAAI,QAAQ,GAAG,CAAC,IAAI,UAAU,IAAI,CAAC;YAAE,UAAU,GAAG,GAAG,CAAC;aACtD,IAAI,QAAQ,GAAG,CAAC,IAAI,UAAU,IAAI,CAAC;YAAE,UAAU,GAAG,EAAE,CAAC;aACrD,IAAI,QAAQ,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC;YAEvC,UAAU,GAAG,EAAE,CAAC;aACb,IAAI,QAAQ,GAAG,UAAU,GAAG,EAAE;YAEjC,UAAU,GAAG,EAAE,CAAC;;YACb,OAAO,IAAI,CAAC;QAEjB,OAAO,IAAA,eAAK,EAAC,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IACtC,CAAC;CACF;AAzED,uBAyEC"} \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/chardet/lib/fs/browser.d.ts b/includes/external/addressbook/node_modules/chardet/lib/fs/browser.d.ts new file mode 100644 index 0000000..6f26fa1 --- /dev/null +++ b/includes/external/addressbook/node_modules/chardet/lib/fs/browser.d.ts @@ -0,0 +1,2 @@ +declare const _default: () => never; +export default _default; diff --git a/includes/external/addressbook/node_modules/chardet/lib/fs/browser.js b/includes/external/addressbook/node_modules/chardet/lib/fs/browser.js new file mode 100644 index 0000000..4fffa57 --- /dev/null +++ b/includes/external/addressbook/node_modules/chardet/lib/fs/browser.js @@ -0,0 +1,6 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = () => { + throw new Error('File system is not available'); +}; +//# sourceMappingURL=browser.js.map \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/chardet/lib/fs/browser.js.map b/includes/external/addressbook/node_modules/chardet/lib/fs/browser.js.map new file mode 100644 index 0000000..867c22b --- /dev/null +++ b/includes/external/addressbook/node_modules/chardet/lib/fs/browser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/fs/browser.ts"],"names":[],"mappings":";;AAAA,kBAAe,GAAG,EAAE;IAClB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;AAClD,CAAC,CAAC"} \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/chardet/lib/fs/node.d.ts b/includes/external/addressbook/node_modules/chardet/lib/fs/node.d.ts new file mode 100644 index 0000000..2840c93 --- /dev/null +++ b/includes/external/addressbook/node_modules/chardet/lib/fs/node.d.ts @@ -0,0 +1,2 @@ +declare const _default: () => any; +export default _default; diff --git a/includes/external/addressbook/node_modules/chardet/lib/fs/node.js b/includes/external/addressbook/node_modules/chardet/lib/fs/node.js new file mode 100644 index 0000000..80b3b33 --- /dev/null +++ b/includes/external/addressbook/node_modules/chardet/lib/fs/node.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +let fsModule; +exports.default = () => { + if (typeof module === 'object' && typeof module.exports === 'object') { + fsModule = fsModule ? fsModule : require('fs'); + return fsModule; + } + throw new Error('File system is not available'); +}; +//# sourceMappingURL=node.js.map \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/chardet/lib/fs/node.js.map b/includes/external/addressbook/node_modules/chardet/lib/fs/node.js.map new file mode 100644 index 0000000..3f03470 --- /dev/null +++ b/includes/external/addressbook/node_modules/chardet/lib/fs/node.js.map @@ -0,0 +1 @@ +{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/fs/node.ts"],"names":[],"mappings":";;AAAA,IAAI,QAAa,CAAC;AAElB,kBAAe,GAAG,EAAE;IAClB,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE;QACpE,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/C,OAAO,QAAQ,CAAC;KACjB;IACD,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;AAClD,CAAC,CAAC"} \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/chardet/lib/index.d.ts b/includes/external/addressbook/node_modules/chardet/lib/index.d.ts new file mode 100644 index 0000000..e4601c1 --- /dev/null +++ b/includes/external/addressbook/node_modules/chardet/lib/index.d.ts @@ -0,0 +1,19 @@ +import { Match } from './match'; +interface FullOptions { + sampleSize: number; + offset: number; +} +export type Options = Partial; +export type AnalyseResult = Match[]; +export type DetectResult = string | null; +export declare const detect: (buffer: Uint8Array) => string | null; +export declare const analyse: (buffer: Uint8Array) => AnalyseResult; +export declare const detectFile: (filepath: string, opts?: Options) => Promise; +export declare const detectFileSync: (filepath: string, opts?: Options) => DetectResult; +declare const _default: { + analyse: (buffer: Uint8Array) => AnalyseResult; + detect: (buffer: Uint8Array) => string | null; + detectFileSync: (filepath: string, opts?: Partial) => DetectResult; + detectFile: (filepath: string, opts?: Partial) => Promise; +}; +export default _default; diff --git a/includes/external/addressbook/node_modules/chardet/lib/index.js b/includes/external/addressbook/node_modules/chardet/lib/index.js new file mode 100644 index 0000000..98ef08d --- /dev/null +++ b/includes/external/addressbook/node_modules/chardet/lib/index.js @@ -0,0 +1,143 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.detectFileSync = exports.detectFile = exports.analyse = exports.detect = void 0; +const node_1 = __importDefault(require("./fs/node")); +const utf8_1 = __importDefault(require("./encoding/utf8")); +const unicode = __importStar(require("./encoding/unicode")); +const mbcs = __importStar(require("./encoding/mbcs")); +const sbcs = __importStar(require("./encoding/sbcs")); +const iso2022 = __importStar(require("./encoding/iso2022")); +const recognisers = [ + new utf8_1.default(), + new unicode.UTF_16BE(), + new unicode.UTF_16LE(), + new unicode.UTF_32BE(), + new unicode.UTF_32LE(), + new mbcs.sjis(), + new mbcs.big5(), + new mbcs.euc_jp(), + new mbcs.euc_kr(), + new mbcs.gb_18030(), + new iso2022.ISO_2022_JP(), + new iso2022.ISO_2022_KR(), + new iso2022.ISO_2022_CN(), + new sbcs.ISO_8859_1(), + new sbcs.ISO_8859_2(), + new sbcs.ISO_8859_5(), + new sbcs.ISO_8859_6(), + new sbcs.ISO_8859_7(), + new sbcs.ISO_8859_8(), + new sbcs.ISO_8859_9(), + new sbcs.windows_1251(), + new sbcs.windows_1256(), + new sbcs.KOI8_R(), +]; +const detect = (buffer) => { + const matches = (0, exports.analyse)(buffer); + return matches.length > 0 ? matches[0].name : null; +}; +exports.detect = detect; +const analyse = (buffer) => { + const byteStats = []; + for (let i = 0; i < 256; i++) + byteStats[i] = 0; + for (let i = buffer.length - 1; i >= 0; i--) + byteStats[buffer[i] & 0x00ff]++; + let c1Bytes = false; + for (let i = 0x80; i <= 0x9f; i += 1) { + if (byteStats[i] !== 0) { + c1Bytes = true; + break; + } + } + const context = { + byteStats, + c1Bytes, + rawInput: buffer, + rawLen: buffer.length, + inputBytes: buffer, + inputLen: buffer.length, + }; + const matches = recognisers + .map((rec) => { + return rec.match(context); + }) + .filter((match) => { + return !!match; + }) + .sort((a, b) => { + return b.confidence - a.confidence; + }); + return matches; +}; +exports.analyse = analyse; +const detectFile = (filepath, opts = {}) => new Promise((resolve, reject) => { + let fd; + const fs = (0, node_1.default)(); + const handler = (err, buffer) => { + if (fd) { + fs.closeSync(fd); + } + if (err) { + reject(err); + } + else { + resolve((0, exports.detect)(buffer)); + } + }; + if (opts && opts.sampleSize) { + fd = fs.openSync(filepath, 'r'); + const sample = Buffer.allocUnsafe(opts.sampleSize); + fs.read(fd, sample, 0, opts.sampleSize, opts.offset, (err) => { + handler(err, sample); + }); + return; + } + fs.readFile(filepath, handler); +}); +exports.detectFile = detectFile; +const detectFileSync = (filepath, opts = {}) => { + const fs = (0, node_1.default)(); + if (opts && opts.sampleSize) { + const fd = fs.openSync(filepath, 'r'); + const sample = Buffer.allocUnsafe(opts.sampleSize); + fs.readSync(fd, sample, 0, opts.sampleSize, opts.offset); + fs.closeSync(fd); + return (0, exports.detect)(sample); + } + return (0, exports.detect)(fs.readFileSync(filepath)); +}; +exports.detectFileSync = detectFileSync; +exports.default = { + analyse: exports.analyse, + detect: exports.detect, + detectFileSync: exports.detectFileSync, + detectFile: exports.detectFile, +}; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/chardet/lib/index.js.map b/includes/external/addressbook/node_modules/chardet/lib/index.js.map new file mode 100644 index 0000000..1dc5f70 --- /dev/null +++ b/includes/external/addressbook/node_modules/chardet/lib/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/chardet/lib/match.d.ts b/includes/external/addressbook/node_modules/chardet/lib/match.d.ts new file mode 100644 index 0000000..e866fe0 --- /dev/null +++ b/includes/external/addressbook/node_modules/chardet/lib/match.d.ts @@ -0,0 +1,8 @@ +import { Context, Recogniser } from "./encoding"; +export interface Match { + confidence: number; + name: string; + lang?: string; +} +declare const _default: (ctx: Context, rec: Recogniser, confidence: number) => Match; +export default _default; diff --git a/includes/external/addressbook/node_modules/chardet/lib/match.js b/includes/external/addressbook/node_modules/chardet/lib/match.js new file mode 100644 index 0000000..e17c203 --- /dev/null +++ b/includes/external/addressbook/node_modules/chardet/lib/match.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = (ctx, rec, confidence) => ({ + confidence, + name: rec.name(ctx), + lang: rec.language ? rec.language() : undefined, +}); +//# sourceMappingURL=match.js.map \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/chardet/lib/match.js.map b/includes/external/addressbook/node_modules/chardet/lib/match.js.map new file mode 100644 index 0000000..b589421 --- /dev/null +++ b/includes/external/addressbook/node_modules/chardet/lib/match.js.map @@ -0,0 +1 @@ +{"version":3,"file":"match.js","sourceRoot":"","sources":["../src/match.ts"],"names":[],"mappings":";;AAQA,kBAAe,CAAC,GAAY,EAAE,GAAe,EAAE,UAAkB,EAAS,EAAE,CAAC,CAAC;IAC5E,UAAU;IACV,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;IACnB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;CAChD,CAAC,CAAC"} \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/chardet/package.json b/includes/external/addressbook/node_modules/chardet/package.json new file mode 100644 index 0000000..0f8a83a --- /dev/null +++ b/includes/external/addressbook/node_modules/chardet/package.json @@ -0,0 +1,95 @@ +{ + "name": "chardet", + "version": "1.5.1", + "homepage": "https://github.com/runk/node-chardet", + "description": "Character encoding detector", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/runk/node-chardet.git" + }, + "bugs": { + "mail": "deadrunk@gmail.com", + "url": "http://github.com/runk/node-chardet/issues" + }, + "scripts": { + "build": "rm -rf lib/* && tsc", + "format": "prettier --write ./src/**/*.ts", + "format:check": "prettier --list-different ./src/**/*.ts", + "test": "jest", + "prepublish": "npm run build", + "semantic-release": "semantic-release" + }, + "files": [ + "lib" + ], + "main": "lib/index.js", + "typings": "lib/index.d.ts", + "engine": { + "node": ">=4" + }, + "readmeFilename": "README.md", + "directories": { + "test": "test" + }, + "devDependencies": { + "@types/jest": "^29.0.0", + "@types/node": "^18.0.0", + "jest": "^29.0.0", + "prettier": "^2.7.1", + "semantic-release": "^19.0.5", + "ts-jest": "^29.0.0", + "ts-node": "^10.9.1", + "typescript": "^4.8.4" + }, + "keywords": [ + "encoding", + "character", + "utf8", + "detector", + "chardet", + "icu", + "character detection", + "character encoding", + "language", + "iconv", + "iconv-light", + "UTF-8", + "UTF-16", + "UTF-32", + "ISO-2022-JP", + "ISO-2022-KR", + "ISO-2022-CN", + "Shift_JIS", + "Big5", + "EUC-JP", + "EUC-KR", + "GB18030", + "ISO-8859-1", + "ISO-8859-2", + "ISO-8859-5", + "ISO-8859-6", + "ISO-8859-7", + "ISO-8859-8", + "ISO-8859-9", + "windows-1250", + "windows-1251", + "windows-1252", + "windows-1253", + "windows-1254", + "windows-1255", + "windows-1256", + "KOI8-R" + ], + "author": "Dmitry Shirokov ", + "contributors": [ + "@spikying", + "@wtgtybhertgeghgtwtg", + "@suisho", + "@seangarner", + "@zevanty" + ], + "browser": { + "./lib/fs/node.js": "./lib/fs/browser.js" + } +} diff --git a/includes/external/addressbook/node_modules/cheerio-select/LICENSE b/includes/external/addressbook/node_modules/cheerio-select/LICENSE new file mode 100644 index 0000000..c464f86 --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio-select/LICENSE @@ -0,0 +1,11 @@ +Copyright (c) Felix Böhm +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +THIS IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/includes/external/addressbook/node_modules/cheerio-select/README.md b/includes/external/addressbook/node_modules/cheerio-select/README.md new file mode 100644 index 0000000..140a661 --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio-select/README.md @@ -0,0 +1,18 @@ +# cheerio-select [![NPM version](http://img.shields.io/npm/v/cheerio-select.svg)](https://npmjs.org/package/cheerio-select) [![Build Status](https://travis-ci.org/cheeriojs/cheerio-select.svg?branch=master)](http://travis-ci.org/cheeriojs/cheerio-select) [![Downloads](https://img.shields.io/npm/dm/cheerio-select.svg)](https://npmjs.org/package/cheerio-select) [![Coverage](https://coveralls.io/repos/cheeriojs/cheerio-select/badge.svg?branch=master)](https://coveralls.io/r/cheeriojs/cheerio-select) + +CSS selector engine supporting jQuery selectors, based on [`css-select`](https://github.com/fb55/css-select). + +Supports all jQuery positional pseudo-selectors: + +- `:first` +- `:last` +- `:eq` +- `:nth` +- `:gt` +- `:lt` +- `:even` +- `:odd` +- `:not(:positional)`, where `:positional` is any of the above. + +This library is a thin wrapper around [`css-select`](https://github.com/fb55/css-select). +Only use this module if you will actually use jQuery positional selectors. diff --git a/includes/external/addressbook/node_modules/cheerio-select/lib/esm/helpers.d.ts b/includes/external/addressbook/node_modules/cheerio-select/lib/esm/helpers.d.ts new file mode 100644 index 0000000..13dba26 --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio-select/lib/esm/helpers.d.ts @@ -0,0 +1,5 @@ +import type { AnyNode } from "domhandler"; +import type { Selector } from "css-what"; +export declare function getDocumentRoot(node: AnyNode): AnyNode; +export declare function groupSelectors(selectors: Selector[][]): [plain: Selector[][], filtered: Selector[][]]; +//# sourceMappingURL=helpers.d.ts.map \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cheerio-select/lib/esm/helpers.d.ts.map b/includes/external/addressbook/node_modules/cheerio-select/lib/esm/helpers.d.ts.map new file mode 100644 index 0000000..689bf8d --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio-select/lib/esm/helpers.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"helpers.d.ts","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio-select/ef063a6ca4c3f0d02d2fc3505e750b6fb81c448d/src/","sources":["helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGzC,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAGtD;AAED,wBAAgB,cAAc,CAC1B,SAAS,EAAE,QAAQ,EAAE,EAAE,GACxB,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAa/C"} \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cheerio-select/lib/esm/helpers.js b/includes/external/addressbook/node_modules/cheerio-select/lib/esm/helpers.js new file mode 100644 index 0000000..1e5c8d5 --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio-select/lib/esm/helpers.js @@ -0,0 +1,20 @@ +import { isFilter } from "./positionals.js"; +export function getDocumentRoot(node) { + while (node.parent) + node = node.parent; + return node; +} +export 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]; +} +//# sourceMappingURL=helpers.js.map \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cheerio-select/lib/esm/helpers.js.map b/includes/external/addressbook/node_modules/cheerio-select/lib/esm/helpers.js.map new file mode 100644 index 0000000..2ad294d --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio-select/lib/esm/helpers.js.map @@ -0,0 +1 @@ +{"version":3,"file":"helpers.js","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio-select/ef063a6ca4c3f0d02d2fc3505e750b6fb81c448d/src/","sources":["helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,MAAM,UAAU,eAAe,CAAC,IAAa;IACzC,OAAO,IAAI,CAAC,MAAM;QAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;IACvC,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,cAAc,CAC1B,SAAuB;IAEvB,MAAM,iBAAiB,GAAiB,EAAE,CAAC;IAC3C,MAAM,cAAc,GAAiB,EAAE,CAAC;IAExC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;QAC9B,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YACzB,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACpC;aAAM;YACH,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACjC;KACJ;IAED,OAAO,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;AAC/C,CAAC"} \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cheerio-select/lib/esm/index.d.ts b/includes/external/addressbook/node_modules/cheerio-select/lib/esm/index.d.ts new file mode 100644 index 0000000..9b6baff --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio-select/lib/esm/index.d.ts @@ -0,0 +1,12 @@ +import { type Options as CSSSelectOptions } from "css-select"; +import type { Element, AnyNode, Document } from "domhandler"; +export { filters, pseudos, aliases } from "css-select"; +export interface Options extends CSSSelectOptions { + /** Optional reference to the root of the document. If not set, this will be computed when needed. */ + root?: Document; +} +export declare function is(element: Element, selector: string | ((el: Element) => boolean), options?: Options): boolean; +export declare function some(elements: Element[], selector: string | ((el: Element) => boolean), options?: Options): boolean; +export declare function filter(selector: string, elements: AnyNode[], options?: Options): Element[]; +export declare function select(selector: string | ((el: Element) => boolean), root: AnyNode | AnyNode[], options?: Options, limit?: number): Element[]; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cheerio-select/lib/esm/index.d.ts.map b/includes/external/addressbook/node_modules/cheerio-select/lib/esm/index.d.ts.map new file mode 100644 index 0000000..4127f83 --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio-select/lib/esm/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio-select/ef063a6ca4c3f0d02d2fc3505e750b6fb81c448d/src/","sources":["index.ts"],"names":[],"mappings":"AACA,OAAO,EAEH,KAAK,OAAO,IAAI,gBAAgB,EAEnC,MAAM,YAAY,CAAC;AAGpB,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAU7D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAYvD,MAAM,WAAW,OAAQ,SAAQ,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC;IAC/D,qGAAqG;IACrG,IAAI,CAAC,EAAE,QAAQ,CAAC;CACnB;AAED,wBAAgB,EAAE,CACd,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,OAAO,KAAK,OAAO,CAAC,EAC7C,OAAO,GAAE,OAAY,GACtB,OAAO,CAET;AAED,wBAAgB,IAAI,CAChB,QAAQ,EAAE,OAAO,EAAE,EACnB,QAAQ,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,OAAO,KAAK,OAAO,CAAC,EAC7C,OAAO,GAAE,OAAY,GACtB,OAAO,CAWT;AAsCD,wBAAgB,MAAM,CAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,GAAE,OAAY,GACtB,OAAO,EAAE,CAEX;AAoGD,wBAAgB,MAAM,CAClB,QAAQ,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,OAAO,KAAK,OAAO,CAAC,EAC7C,IAAI,EAAE,OAAO,GAAG,OAAO,EAAE,EACzB,OAAO,GAAE,OAAY,EACrB,KAAK,SAAW,GACjB,OAAO,EAAE,CA2BX"} \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cheerio-select/lib/esm/index.js b/includes/external/addressbook/node_modules/cheerio-select/lib/esm/index.js new file mode 100644 index 0000000..ea6c7f0 --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio-select/lib/esm/index.js @@ -0,0 +1,241 @@ +import { parse, SelectorType, isTraversal } from "css-what"; +import { _compileToken as compileToken, prepareContext, } from "css-select"; +import * as DomUtils from "domutils"; +import * as boolbase from "boolbase"; +import { getDocumentRoot, groupSelectors } from "./helpers.js"; +import { isFilter, getLimit, } from "./positionals.js"; +// Re-export pseudo extension points +export { filters, pseudos, aliases } from "css-select"; +const UNIVERSAL_SELECTOR = { + type: SelectorType.Universal, + namespace: null, +}; +const SCOPE_PSEUDO = { + type: SelectorType.Pseudo, + name: "scope", + data: null, +}; +export function is(element, selector, options = {}) { + return some([element], selector, options); +} +export 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(filter, elems, data, options) { + const num = typeof data === "string" ? parseInt(data, 10) : NaN; + switch (filter) { + case "first": + case "lt": + // Already done in `getLimit` + 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)); + } + } +} +export function filter(selector, elements, options = {}) { + return filterParsed(parse(selector), elements, options); +} +/** + * Filter a set of elements by a selector. + * + * Will return elements in the original order. + * + * @param selector Selector to filter by. + * @param elements Elements to filter. + * @param options Options for selector. + */ +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 there are no filters, just return + if (filteredSelectors.length === 0) { + return filtered; + } + // Otherwise, we have to do some filtering + 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) => DomUtils.isTag(e) && !found.has(e)) + : elements; + if (missing.length === 0) + break; + const filtered = filterBySelector(filteredSelector, elements, options); + if (filtered.length) { + if (!found) { + /* + * If we haven't found anything before the last selector, + * just return what we found now. + */ + 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 + : // Filter elements to preserve order + elements.filter((el) => found.has(el))) + : []; +} +function filterBySelector(selector, elements, options) { + var _a; + if (selector.some(isTraversal)) { + /* + * Get root node, run selector with the scope + * set to all of our nodes. + */ + 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); + } + // Performance optimization: If we don't have to traverse, just filter set. + return findFilterElements(elements, selector, options, false, elements.length); +} +export 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)); + // Plain selectors can be queried in a single go + if (plain.length) { + results.push(findElements(root, plain, options, limit)); + } + if (results.length === 0) { + return []; + } + // If there was only a single selector, just return the result + if (results.length === 1) { + return results[0]; + } + // Sort results, filtering for duplicates + return DomUtils.uniqueSort(results.reduce((a, b) => [...a, ...b])); +} +/** + * + * @param root Element(s) to search from. + * @param selector Selector to look for. + * @param options Options for querying. + * @param queryForSelector Query multiple levels deep for the initial selector, even if it doesn't contain a traversal. + */ +function findFilterElements(root, selector, options, queryForSelector, totalLimit) { + const filterIndex = selector.findIndex(isFilter); + const sub = selector.slice(0, filterIndex); + const filter = selector[filterIndex]; + // If we are at the end of the selector, we can limit the number of elements to retrieve. + const partLimit = selector.length - 1 === filterIndex ? totalLimit : Infinity; + /* + * Set the number of elements to retrieve. + * Eg. for :first, we only have to get a single element. + */ + const limit = getLimit(filter.name, filter.data, partLimit); + if (limit === 0) + return []; + /* + * Skip `findElements` call if our selector starts with a positional + * pseudo. + */ + const elemsNoLimit = sub.length === 0 && !Array.isArray(root) + ? DomUtils.getChildren(root).filter(DomUtils.isTag) + : sub.length === 0 + ? (Array.isArray(root) ? root : [root]).filter(DomUtils.isTag) + : queryForSelector || sub.some(isTraversal) + ? findElements(root, [sub], options, limit) + : filterElements(root, [sub], options); + const elems = elemsNoLimit.slice(0, limit); + let result = filterByPosition(filter.name, elems, filter.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) { + // If we have a sibling traversal, we need to also look at the siblings. + result = prepareContext(result, DomUtils, true); + } + // Avoid a traversal-first selector error. + remainingSelector.unshift(UNIVERSAL_SELECTOR); + } + options = { + ...options, + // Avoid absolutizing the selector + relativeSelector: false, + /* + * Add a custom root func, to make sure traversals don't match elements + * that aren't a part of the considered tree. + */ + rootFunc: (el) => result.includes(el), + }; + } + else if (options.rootFunc && options.rootFunc !== boolbase.trueFunc) { + options = { ...options, rootFunc: boolbase.trueFunc }; + } + /* + * If we have another filter, recursively call `findFilterElements`, + * with the `recursive` flag disabled. We only have to look for more + * elements when we see a traversal. + * + * Otherwise, + */ + return remainingSelector.some(isFilter) + ? findFilterElements(result, remainingSelector, options, false, totalLimit) + : remainingHasTraversal + ? // Query existing elements to resolve traversal. + findElements(result, [remainingSelector], options, totalLimit) + : // If we don't have any more traversals, simply filter elements. + 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 DomUtils.find((node) => DomUtils.isTag(node) && query(node), elems, true, limit); +} +function filterElements(elements, sel, options) { + const els = (Array.isArray(elements) ? elements : [elements]).filter(DomUtils.isTag); + if (els.length === 0) + return els; + const query = compileToken(sel, options); + return query === boolbase.trueFunc ? els : els.filter(query); +} +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cheerio-select/lib/esm/index.js.map b/includes/external/addressbook/node_modules/cheerio-select/lib/esm/index.js.map new file mode 100644 index 0000000..ed9f158 --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio-select/lib/esm/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio-select/ef063a6ca4c3f0d02d2fc3505e750b6fb81c448d/src/","sources":["index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cheerio-select/lib/esm/package.json b/includes/external/addressbook/node_modules/cheerio-select/lib/esm/package.json new file mode 100644 index 0000000..089153b --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio-select/lib/esm/package.json @@ -0,0 +1 @@ +{"type":"module"} diff --git a/includes/external/addressbook/node_modules/cheerio-select/lib/esm/positionals.d.ts b/includes/external/addressbook/node_modules/cheerio-select/lib/esm/positionals.d.ts new file mode 100644 index 0000000..5315dd3 --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio-select/lib/esm/positionals.d.ts @@ -0,0 +1,10 @@ +import type { Selector, PseudoSelector } from "css-what"; +export declare type Filter = "first" | "last" | "eq" | "nth" | "gt" | "lt" | "even" | "odd" | "not"; +export declare const filterNames: Set; +export interface CheerioSelector extends PseudoSelector { + name: Filter; + data: string | null; +} +export declare function isFilter(s: Selector): s is CheerioSelector; +export declare function getLimit(filter: Filter, data: string | null, partLimit: number): number; +//# sourceMappingURL=positionals.d.ts.map \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cheerio-select/lib/esm/positionals.d.ts.map b/includes/external/addressbook/node_modules/cheerio-select/lib/esm/positionals.d.ts.map new file mode 100644 index 0000000..0e0db37 --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio-select/lib/esm/positionals.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"positionals.d.ts","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio-select/ef063a6ca4c3f0d02d2fc3505e750b6fb81c448d/src/","sources":["positionals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAEzD,oBAAY,MAAM,GACZ,OAAO,GACP,MAAM,GACN,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,IAAI,GACJ,MAAM,GACN,KAAK,GACL,KAAK,CAAC;AACZ,eAAO,MAAM,WAAW,EAAE,GAAG,CAAC,MAAM,CASlC,CAAC;AAEH,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,IAAI,eAAe,CAS1D;AAED,wBAAgB,QAAQ,CACpB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,SAAS,EAAE,MAAM,GAClB,MAAM,CAyBR"} \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cheerio-select/lib/esm/positionals.js b/includes/external/addressbook/node_modules/cheerio-select/lib/esm/positionals.js new file mode 100644 index 0000000..61f5d6e --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio-select/lib/esm/positionals.js @@ -0,0 +1,47 @@ +export const filterNames = new Set([ + "first", + "last", + "eq", + "gt", + "nth", + "lt", + "even", + "odd", +]); +export function isFilter(s) { + if (s.type !== "pseudo") + return false; + if (filterNames.has(s.name)) + return true; + if (s.name === "not" && Array.isArray(s.data)) { + // Only consider `:not` with embedded filters + return s.data.some((s) => s.some(isFilter)); + } + return false; +} +export function getLimit(filter, data, partLimit) { + const num = data != null ? parseInt(data, 10) : NaN; + switch (filter) { + 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; + } +} +//# sourceMappingURL=positionals.js.map \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cheerio-select/lib/esm/positionals.js.map b/includes/external/addressbook/node_modules/cheerio-select/lib/esm/positionals.js.map new file mode 100644 index 0000000..0b26c24 --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio-select/lib/esm/positionals.js.map @@ -0,0 +1 @@ +{"version":3,"file":"positionals.js","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio-select/ef063a6ca4c3f0d02d2fc3505e750b6fb81c448d/src/","sources":["positionals.ts"],"names":[],"mappings":"AAYA,MAAM,CAAC,MAAM,WAAW,GAAgB,IAAI,GAAG,CAAS;IACpD,OAAO;IACP,MAAM;IACN,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,MAAM;IACN,KAAK;CACR,CAAC,CAAC;AAOH,MAAM,UAAU,QAAQ,CAAC,CAAW;IAChC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;QAC3C,6CAA6C;QAC7C,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;KAC/C;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,QAAQ,CACpB,MAAc,EACd,IAAmB,EACnB,SAAiB;IAEjB,MAAM,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAEpD,QAAQ,MAAM,EAAE;QACZ,KAAK,OAAO;YACR,OAAO,CAAC,CAAC;QACb,KAAK,KAAK,CAAC;QACX,KAAK,IAAI;YACL,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,KAAK,IAAI;YACL,OAAO,QAAQ,CAAC,GAAG,CAAC;gBAChB,CAAC,CAAC,GAAG,IAAI,CAAC;oBACN,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC;oBAC1B,CAAC,CAAC,QAAQ;gBACd,CAAC,CAAC,CAAC,CAAC;QACZ,KAAK,IAAI;YACL,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,KAAK,KAAK;YACN,OAAO,CAAC,GAAG,SAAS,CAAC;QACzB,KAAK,MAAM;YACP,OAAO,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;QAC7B,KAAK,MAAM,CAAC;QACZ,KAAK,KAAK;YACN,OAAO,QAAQ,CAAC;KACvB;AACL,CAAC"} \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cheerio-select/lib/helpers.d.ts b/includes/external/addressbook/node_modules/cheerio-select/lib/helpers.d.ts new file mode 100644 index 0000000..13dba26 --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio-select/lib/helpers.d.ts @@ -0,0 +1,5 @@ +import type { AnyNode } from "domhandler"; +import type { Selector } from "css-what"; +export declare function getDocumentRoot(node: AnyNode): AnyNode; +export declare function groupSelectors(selectors: Selector[][]): [plain: Selector[][], filtered: Selector[][]]; +//# sourceMappingURL=helpers.d.ts.map \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cheerio-select/lib/helpers.d.ts.map b/includes/external/addressbook/node_modules/cheerio-select/lib/helpers.d.ts.map new file mode 100644 index 0000000..689bf8d --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio-select/lib/helpers.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"helpers.d.ts","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio-select/ef063a6ca4c3f0d02d2fc3505e750b6fb81c448d/src/","sources":["helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGzC,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAGtD;AAED,wBAAgB,cAAc,CAC1B,SAAS,EAAE,QAAQ,EAAE,EAAE,GACxB,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAa/C"} \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cheerio-select/lib/helpers.js b/includes/external/addressbook/node_modules/cheerio-select/lib/helpers.js new file mode 100644 index 0000000..f996a6c --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio-select/lib/helpers.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.groupSelectors = exports.getDocumentRoot = void 0; +var positionals_js_1 = require("./positionals.js"); +function getDocumentRoot(node) { + while (node.parent) + node = node.parent; + return node; +} +exports.getDocumentRoot = getDocumentRoot; +function groupSelectors(selectors) { + var filteredSelectors = []; + var plainSelectors = []; + for (var _i = 0, selectors_1 = selectors; _i < selectors_1.length; _i++) { + var selector = selectors_1[_i]; + if (selector.some(positionals_js_1.isFilter)) { + filteredSelectors.push(selector); + } + else { + plainSelectors.push(selector); + } + } + return [plainSelectors, filteredSelectors]; +} +exports.groupSelectors = groupSelectors; +//# sourceMappingURL=helpers.js.map \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cheerio-select/lib/helpers.js.map b/includes/external/addressbook/node_modules/cheerio-select/lib/helpers.js.map new file mode 100644 index 0000000..95bf143 --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio-select/lib/helpers.js.map @@ -0,0 +1 @@ +{"version":3,"file":"helpers.js","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio-select/ef063a6ca4c3f0d02d2fc3505e750b6fb81c448d/src/","sources":["helpers.ts"],"names":[],"mappings":";;;AAEA,mDAA4C;AAE5C,SAAgB,eAAe,CAAC,IAAa;IACzC,OAAO,IAAI,CAAC,MAAM;QAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;IACvC,OAAO,IAAI,CAAC;AAChB,CAAC;AAHD,0CAGC;AAED,SAAgB,cAAc,CAC1B,SAAuB;IAEvB,IAAM,iBAAiB,GAAiB,EAAE,CAAC;IAC3C,IAAM,cAAc,GAAiB,EAAE,CAAC;IAExC,KAAuB,UAAS,EAAT,uBAAS,EAAT,uBAAS,EAAT,IAAS,EAAE;QAA7B,IAAM,QAAQ,kBAAA;QACf,IAAI,QAAQ,CAAC,IAAI,CAAC,yBAAQ,CAAC,EAAE;YACzB,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACpC;aAAM;YACH,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACjC;KACJ;IAED,OAAO,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;AAC/C,CAAC;AAfD,wCAeC"} \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cheerio-select/lib/index.d.ts b/includes/external/addressbook/node_modules/cheerio-select/lib/index.d.ts new file mode 100644 index 0000000..9b6baff --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio-select/lib/index.d.ts @@ -0,0 +1,12 @@ +import { type Options as CSSSelectOptions } from "css-select"; +import type { Element, AnyNode, Document } from "domhandler"; +export { filters, pseudos, aliases } from "css-select"; +export interface Options extends CSSSelectOptions { + /** Optional reference to the root of the document. If not set, this will be computed when needed. */ + root?: Document; +} +export declare function is(element: Element, selector: string | ((el: Element) => boolean), options?: Options): boolean; +export declare function some(elements: Element[], selector: string | ((el: Element) => boolean), options?: Options): boolean; +export declare function filter(selector: string, elements: AnyNode[], options?: Options): Element[]; +export declare function select(selector: string | ((el: Element) => boolean), root: AnyNode | AnyNode[], options?: Options, limit?: number): Element[]; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cheerio-select/lib/index.d.ts.map b/includes/external/addressbook/node_modules/cheerio-select/lib/index.d.ts.map new file mode 100644 index 0000000..4127f83 --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio-select/lib/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio-select/ef063a6ca4c3f0d02d2fc3505e750b6fb81c448d/src/","sources":["index.ts"],"names":[],"mappings":"AACA,OAAO,EAEH,KAAK,OAAO,IAAI,gBAAgB,EAEnC,MAAM,YAAY,CAAC;AAGpB,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAU7D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAYvD,MAAM,WAAW,OAAQ,SAAQ,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC;IAC/D,qGAAqG;IACrG,IAAI,CAAC,EAAE,QAAQ,CAAC;CACnB;AAED,wBAAgB,EAAE,CACd,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,OAAO,KAAK,OAAO,CAAC,EAC7C,OAAO,GAAE,OAAY,GACtB,OAAO,CAET;AAED,wBAAgB,IAAI,CAChB,QAAQ,EAAE,OAAO,EAAE,EACnB,QAAQ,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,OAAO,KAAK,OAAO,CAAC,EAC7C,OAAO,GAAE,OAAY,GACtB,OAAO,CAWT;AAsCD,wBAAgB,MAAM,CAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,GAAE,OAAY,GACtB,OAAO,EAAE,CAEX;AAoGD,wBAAgB,MAAM,CAClB,QAAQ,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,OAAO,KAAK,OAAO,CAAC,EAC7C,IAAI,EAAE,OAAO,GAAG,OAAO,EAAE,EACzB,OAAO,GAAE,OAAY,EACrB,KAAK,SAAW,GACjB,OAAO,EAAE,CA2BX"} \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cheerio-select/lib/index.js b/includes/external/addressbook/node_modules/cheerio-select/lib/index.js new file mode 100644 index 0000000..9366d71 --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio-select/lib/index.js @@ -0,0 +1,302 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.select = exports.filter = exports.some = exports.is = exports.aliases = exports.pseudos = exports.filters = void 0; +var css_what_1 = require("css-what"); +var css_select_1 = require("css-select"); +var DomUtils = __importStar(require("domutils")); +var boolbase = __importStar(require("boolbase")); +var helpers_js_1 = require("./helpers.js"); +var positionals_js_1 = require("./positionals.js"); +// Re-export pseudo extension points +var css_select_2 = require("css-select"); +Object.defineProperty(exports, "filters", { enumerable: true, get: function () { return css_select_2.filters; } }); +Object.defineProperty(exports, "pseudos", { enumerable: true, get: function () { return css_select_2.pseudos; } }); +Object.defineProperty(exports, "aliases", { enumerable: true, get: function () { return css_select_2.aliases; } }); +var UNIVERSAL_SELECTOR = { + type: css_what_1.SelectorType.Universal, + namespace: null, +}; +var SCOPE_PSEUDO = { + type: css_what_1.SelectorType.Pseudo, + name: "scope", + data: null, +}; +function is(element, selector, options) { + if (options === void 0) { options = {}; } + return some([element], selector, options); +} +exports.is = is; +function some(elements, selector, options) { + if (options === void 0) { options = {}; } + if (typeof selector === "function") + return elements.some(selector); + var _a = (0, helpers_js_1.groupSelectors)((0, css_what_1.parse)(selector)), plain = _a[0], filtered = _a[1]; + return ((plain.length > 0 && elements.some((0, css_select_1._compileToken)(plain, options))) || + filtered.some(function (sel) { return filterBySelector(sel, elements, options).length > 0; })); +} +exports.some = some; +function filterByPosition(filter, elems, data, options) { + var num = typeof data === "string" ? parseInt(data, 10) : NaN; + switch (filter) { + case "first": + case "lt": + // Already done in `getLimit` + 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(function (_, i) { return i % 2 === 0; }); + case "odd": + return elems.filter(function (_, i) { return i % 2 === 1; }); + case "not": { + var filtered_1 = new Set(filterParsed(data, elems, options)); + return elems.filter(function (e) { return !filtered_1.has(e); }); + } + } +} +function filter(selector, elements, options) { + if (options === void 0) { options = {}; } + return filterParsed((0, css_what_1.parse)(selector), elements, options); +} +exports.filter = filter; +/** + * Filter a set of elements by a selector. + * + * Will return elements in the original order. + * + * @param selector Selector to filter by. + * @param elements Elements to filter. + * @param options Options for selector. + */ +function filterParsed(selector, elements, options) { + if (elements.length === 0) + return []; + var _a = (0, helpers_js_1.groupSelectors)(selector), plainSelectors = _a[0], filteredSelectors = _a[1]; + var found; + if (plainSelectors.length) { + var filtered = filterElements(elements, plainSelectors, options); + // If there are no filters, just return + if (filteredSelectors.length === 0) { + return filtered; + } + // Otherwise, we have to do some filtering + if (filtered.length) { + found = new Set(filtered); + } + } + for (var i = 0; i < filteredSelectors.length && (found === null || found === void 0 ? void 0 : found.size) !== elements.length; i++) { + var filteredSelector = filteredSelectors[i]; + var missing = found + ? elements.filter(function (e) { return DomUtils.isTag(e) && !found.has(e); }) + : elements; + if (missing.length === 0) + break; + var filtered = filterBySelector(filteredSelector, elements, options); + if (filtered.length) { + if (!found) { + /* + * If we haven't found anything before the last selector, + * just return what we found now. + */ + if (i === filteredSelectors.length - 1) { + return filtered; + } + found = new Set(filtered); + } + else { + filtered.forEach(function (el) { return found.add(el); }); + } + } + } + return typeof found !== "undefined" + ? (found.size === elements.length + ? elements + : // Filter elements to preserve order + elements.filter(function (el) { + return found.has(el); + })) + : []; +} +function filterBySelector(selector, elements, options) { + var _a; + if (selector.some(css_what_1.isTraversal)) { + /* + * Get root node, run selector with the scope + * set to all of our nodes. + */ + var root = (_a = options.root) !== null && _a !== void 0 ? _a : (0, helpers_js_1.getDocumentRoot)(elements[0]); + var opts = __assign(__assign({}, options), { context: elements, relativeSelector: false }); + selector.push(SCOPE_PSEUDO); + return findFilterElements(root, selector, opts, true, elements.length); + } + // Performance optimization: If we don't have to traverse, just filter set. + return findFilterElements(elements, selector, options, false, elements.length); +} +function select(selector, root, options, limit) { + if (options === void 0) { options = {}; } + if (limit === void 0) { limit = Infinity; } + if (typeof selector === "function") { + return find(root, selector); + } + var _a = (0, helpers_js_1.groupSelectors)((0, css_what_1.parse)(selector)), plain = _a[0], filtered = _a[1]; + var results = filtered.map(function (sel) { + return findFilterElements(root, sel, options, true, limit); + }); + // Plain selectors can be queried in a single go + if (plain.length) { + results.push(findElements(root, plain, options, limit)); + } + if (results.length === 0) { + return []; + } + // If there was only a single selector, just return the result + if (results.length === 1) { + return results[0]; + } + // Sort results, filtering for duplicates + return DomUtils.uniqueSort(results.reduce(function (a, b) { return __spreadArray(__spreadArray([], a, true), b, true); })); +} +exports.select = select; +/** + * + * @param root Element(s) to search from. + * @param selector Selector to look for. + * @param options Options for querying. + * @param queryForSelector Query multiple levels deep for the initial selector, even if it doesn't contain a traversal. + */ +function findFilterElements(root, selector, options, queryForSelector, totalLimit) { + var filterIndex = selector.findIndex(positionals_js_1.isFilter); + var sub = selector.slice(0, filterIndex); + var filter = selector[filterIndex]; + // If we are at the end of the selector, we can limit the number of elements to retrieve. + var partLimit = selector.length - 1 === filterIndex ? totalLimit : Infinity; + /* + * Set the number of elements to retrieve. + * Eg. for :first, we only have to get a single element. + */ + var limit = (0, positionals_js_1.getLimit)(filter.name, filter.data, partLimit); + if (limit === 0) + return []; + /* + * Skip `findElements` call if our selector starts with a positional + * pseudo. + */ + var elemsNoLimit = sub.length === 0 && !Array.isArray(root) + ? DomUtils.getChildren(root).filter(DomUtils.isTag) + : sub.length === 0 + ? (Array.isArray(root) ? root : [root]).filter(DomUtils.isTag) + : queryForSelector || sub.some(css_what_1.isTraversal) + ? findElements(root, [sub], options, limit) + : filterElements(root, [sub], options); + var elems = elemsNoLimit.slice(0, limit); + var result = filterByPosition(filter.name, elems, filter.data, options); + if (result.length === 0 || selector.length === filterIndex + 1) { + return result; + } + var remainingSelector = selector.slice(filterIndex + 1); + var remainingHasTraversal = remainingSelector.some(css_what_1.isTraversal); + if (remainingHasTraversal) { + if ((0, css_what_1.isTraversal)(remainingSelector[0])) { + var type = remainingSelector[0].type; + if (type === css_what_1.SelectorType.Sibling || + type === css_what_1.SelectorType.Adjacent) { + // If we have a sibling traversal, we need to also look at the siblings. + result = (0, css_select_1.prepareContext)(result, DomUtils, true); + } + // Avoid a traversal-first selector error. + remainingSelector.unshift(UNIVERSAL_SELECTOR); + } + options = __assign(__assign({}, options), { + // Avoid absolutizing the selector + relativeSelector: false, + /* + * Add a custom root func, to make sure traversals don't match elements + * that aren't a part of the considered tree. + */ + rootFunc: function (el) { return result.includes(el); } }); + } + else if (options.rootFunc && options.rootFunc !== boolbase.trueFunc) { + options = __assign(__assign({}, options), { rootFunc: boolbase.trueFunc }); + } + /* + * If we have another filter, recursively call `findFilterElements`, + * with the `recursive` flag disabled. We only have to look for more + * elements when we see a traversal. + * + * Otherwise, + */ + return remainingSelector.some(positionals_js_1.isFilter) + ? findFilterElements(result, remainingSelector, options, false, totalLimit) + : remainingHasTraversal + ? // Query existing elements to resolve traversal. + findElements(result, [remainingSelector], options, totalLimit) + : // If we don't have any more traversals, simply filter elements. + filterElements(result, [remainingSelector], options); +} +function findElements(root, sel, options, limit) { + var query = (0, css_select_1._compileToken)(sel, options, root); + return find(root, query, limit); +} +function find(root, query, limit) { + if (limit === void 0) { limit = Infinity; } + var elems = (0, css_select_1.prepareContext)(root, DomUtils, query.shouldTestNextSiblings); + return DomUtils.find(function (node) { return DomUtils.isTag(node) && query(node); }, elems, true, limit); +} +function filterElements(elements, sel, options) { + var els = (Array.isArray(elements) ? elements : [elements]).filter(DomUtils.isTag); + if (els.length === 0) + return els; + var query = (0, css_select_1._compileToken)(sel, options); + return query === boolbase.trueFunc ? els : els.filter(query); +} +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cheerio-select/lib/index.js.map b/includes/external/addressbook/node_modules/cheerio-select/lib/index.js.map new file mode 100644 index 0000000..19a157e --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio-select/lib/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio-select/ef063a6ca4c3f0d02d2fc3505e750b6fb81c448d/src/","sources":["index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cheerio-select/lib/positionals.d.ts b/includes/external/addressbook/node_modules/cheerio-select/lib/positionals.d.ts new file mode 100644 index 0000000..5315dd3 --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio-select/lib/positionals.d.ts @@ -0,0 +1,10 @@ +import type { Selector, PseudoSelector } from "css-what"; +export declare type Filter = "first" | "last" | "eq" | "nth" | "gt" | "lt" | "even" | "odd" | "not"; +export declare const filterNames: Set; +export interface CheerioSelector extends PseudoSelector { + name: Filter; + data: string | null; +} +export declare function isFilter(s: Selector): s is CheerioSelector; +export declare function getLimit(filter: Filter, data: string | null, partLimit: number): number; +//# sourceMappingURL=positionals.d.ts.map \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cheerio-select/lib/positionals.d.ts.map b/includes/external/addressbook/node_modules/cheerio-select/lib/positionals.d.ts.map new file mode 100644 index 0000000..0e0db37 --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio-select/lib/positionals.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"positionals.d.ts","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio-select/ef063a6ca4c3f0d02d2fc3505e750b6fb81c448d/src/","sources":["positionals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAEzD,oBAAY,MAAM,GACZ,OAAO,GACP,MAAM,GACN,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,IAAI,GACJ,MAAM,GACN,KAAK,GACL,KAAK,CAAC;AACZ,eAAO,MAAM,WAAW,EAAE,GAAG,CAAC,MAAM,CASlC,CAAC;AAEH,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,IAAI,eAAe,CAS1D;AAED,wBAAgB,QAAQ,CACpB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,SAAS,EAAE,MAAM,GAClB,MAAM,CAyBR"} \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cheerio-select/lib/positionals.js b/includes/external/addressbook/node_modules/cheerio-select/lib/positionals.js new file mode 100644 index 0000000..754bb25 --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio-select/lib/positionals.js @@ -0,0 +1,52 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getLimit = exports.isFilter = exports.filterNames = void 0; +exports.filterNames = new Set([ + "first", + "last", + "eq", + "gt", + "nth", + "lt", + "even", + "odd", +]); +function isFilter(s) { + if (s.type !== "pseudo") + return false; + if (exports.filterNames.has(s.name)) + return true; + if (s.name === "not" && Array.isArray(s.data)) { + // Only consider `:not` with embedded filters + return s.data.some(function (s) { return s.some(isFilter); }); + } + return false; +} +exports.isFilter = isFilter; +function getLimit(filter, data, partLimit) { + var num = data != null ? parseInt(data, 10) : NaN; + switch (filter) { + 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; + } +} +exports.getLimit = getLimit; +//# sourceMappingURL=positionals.js.map \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cheerio-select/lib/positionals.js.map b/includes/external/addressbook/node_modules/cheerio-select/lib/positionals.js.map new file mode 100644 index 0000000..eed1e88 --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio-select/lib/positionals.js.map @@ -0,0 +1 @@ +{"version":3,"file":"positionals.js","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio-select/ef063a6ca4c3f0d02d2fc3505e750b6fb81c448d/src/","sources":["positionals.ts"],"names":[],"mappings":";;;AAYa,QAAA,WAAW,GAAgB,IAAI,GAAG,CAAS;IACpD,OAAO;IACP,MAAM;IACN,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,MAAM;IACN,KAAK;CACR,CAAC,CAAC;AAOH,SAAgB,QAAQ,CAAC,CAAW;IAChC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,mBAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;QAC3C,6CAA6C;QAC7C,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAhB,CAAgB,CAAC,CAAC;KAC/C;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AATD,4BASC;AAED,SAAgB,QAAQ,CACpB,MAAc,EACd,IAAmB,EACnB,SAAiB;IAEjB,IAAM,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAEpD,QAAQ,MAAM,EAAE;QACZ,KAAK,OAAO;YACR,OAAO,CAAC,CAAC;QACb,KAAK,KAAK,CAAC;QACX,KAAK,IAAI;YACL,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,KAAK,IAAI;YACL,OAAO,QAAQ,CAAC,GAAG,CAAC;gBAChB,CAAC,CAAC,GAAG,IAAI,CAAC;oBACN,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC;oBAC1B,CAAC,CAAC,QAAQ;gBACd,CAAC,CAAC,CAAC,CAAC;QACZ,KAAK,IAAI;YACL,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,KAAK,KAAK;YACN,OAAO,CAAC,GAAG,SAAS,CAAC;QACzB,KAAK,MAAM;YACP,OAAO,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;QAC7B,KAAK,MAAM,CAAC;QACZ,KAAK,KAAK;YACN,OAAO,QAAQ,CAAC;KACvB;AACL,CAAC;AA7BD,4BA6BC"} \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cheerio-select/package.json b/includes/external/addressbook/node_modules/cheerio-select/package.json new file mode 100644 index 0000000..96b34cb --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio-select/package.json @@ -0,0 +1,76 @@ +{ + "name": "cheerio-select", + "description": "CSS selector engine supporting jQuery selectors", + "version": "2.1.0", + "author": "Felix Boehm ", + "funding": { + "url": "https://github.com/sponsors/fb55" + }, + "license": "BSD-2-Clause", + "sideEffects": false, + "repository": { + "type": "git", + "url": "git://github.com/cheeriojs/cheerio-select.git" + }, + "directories": { + "lib": "lib/" + }, + "main": "lib/index.js", + "types": "lib/index.d.ts", + "module": "lib/esm/index.js", + "exports": { + "require": "./lib/index.js", + "import": "./lib/esm/index.js" + }, + "files": [ + "lib/**/*" + ], + "scripts": { + "test": "npm run test:jest && npm run lint", + "test:jest": "jest", + "lint": "npm run lint:es && npm run lint:prettier", + "lint:es": "eslint src", + "lint:prettier": "npm run format:prettier:raw -- --check", + "format": "npm run format:es && npm run format:prettier", + "format:es": "npm run lint:es -- --fix", + "format:prettier": "npm run format:prettier:raw -- --write", + "format:prettier:raw": "prettier '**/*.{ts,md,json,yml}'", + "build": "npm run build:cjs && npm run build:esm", + "build:cjs": "tsc --sourceRoot https://raw.githubusercontent.com/cheeriojs/cheerio-select/$(git rev-parse HEAD)/src/", + "build:esm": "npm run build:cjs -- --module esnext --target es2019 --outDir lib/esm && echo '{\"type\":\"module\"}' > lib/esm/package.json", + "prepare": "npm run build" + }, + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "devDependencies": { + "@types/boolbase": "^1.0.1", + "@types/jest": "^27.5.0", + "@types/node": "^17.0.33", + "@typescript-eslint/eslint-plugin": "^5.23.0", + "@typescript-eslint/parser": "^5.23.0", + "eslint": "^8.15.0", + "eslint-config-prettier": "^8.5.0", + "htmlparser2": "^8.0.1", + "jest": "^27.5.1", + "prettier": "^2.6.2", + "ts-jest": "^27.1.4", + "typescript": "^4.6.4" + }, + "jest": { + "preset": "ts-jest", + "testEnvironment": "node", + "coverageProvider": "v8", + "moduleNameMapper": { + "^(.*)\\.js$": "$1" + } + }, + "prettier": { + "tabWidth": 4 + } +} diff --git a/includes/external/addressbook/node_modules/cheerio/LICENSE b/includes/external/addressbook/node_modules/cheerio/LICENSE new file mode 100644 index 0000000..b0c8b19 --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 The Cheerio contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/includes/external/addressbook/node_modules/cheerio/Readme.md b/includes/external/addressbook/node_modules/cheerio/Readme.md new file mode 100644 index 0000000..2fba04f --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio/Readme.md @@ -0,0 +1,357 @@ +

cheerio

+ +
Fast, flexible & lean implementation of core jQuery designed specifically for the server.
+ + + +
+ +[中文文档 (Chinese Readme)](https://github.com/cheeriojs/cheerio/wiki/Chinese-README) + +```js +const cheerio = require('cheerio'); +const $ = cheerio.load('

Hello world

'); + +$('h2.title').text('Hello there!'); +$('h2').addClass('welcome'); + +$.html(); +//=>

Hello there!

+``` + +## Note + +We are currently working on the 1.0.0 release of cheerio on the `main` branch. The source code for the last published version, `0.22.0`, can be found [here](https://github.com/cheeriojs/cheerio/tree/aa90399c9c02f12432bfff97b8f1c7d8ece7c307). + +## Installation + +`npm install cheerio` + +## Features + +**❤ Familiar syntax:** +Cheerio implements a subset of core jQuery. Cheerio removes all the DOM inconsistencies and browser cruft from the jQuery library, revealing its truly gorgeous API. + +**ϟ Blazingly fast:** +Cheerio works with a very simple, consistent DOM model. As a result parsing, manipulating, and rendering are incredibly efficient. + +**❁ Incredibly flexible:** +Cheerio wraps around [parse5](https://github.com/inikulin/parse5) parser and can optionally use @FB55's forgiving [htmlparser2](https://github.com/fb55/htmlparser2/). Cheerio can parse nearly any HTML or XML document. + +## Cheerio is not a web browser + +Cheerio parses markup and provides an API for traversing/manipulating the resulting data structure. It does not interpret the result as a web browser does. Specifically, it does _not_ produce a visual rendering, apply CSS, load external resources, or execute JavaScript which is common for a SPA (single page application). This makes Cheerio **much, much faster than other solutions**. If your use case requires any of this functionality, you should consider browser automation software like [Puppeteer](https://github.com/puppeteer/puppeteer) and [Playwright](https://github.com/microsoft/playwright) or DOM emulation projects like [JSDom](https://github.com/jsdom/jsdom). + +## API + +### Markup example we'll be using: + +```html +
    +
  • Apple
  • +
  • Orange
  • +
  • Pear
  • +
+``` + +This is the HTML markup we will be using in all of the API examples. + +### Loading + +First you need to load in the HTML. This step in jQuery is implicit, since jQuery operates on the one, baked-in DOM. With Cheerio, we need to pass in the HTML document. + +This is the _preferred_ method: + +```js +// ES6 or TypeScript: +import * as cheerio from 'cheerio'; + +// In other environments: +const cheerio = require('cheerio'); + +const $ = cheerio.load('
    ...
'); + +$.html(); +//=>
    ...
+``` + +Similar to web browser contexts, `load` will introduce ``, ``, and `` elements if they are not already present. You can set `load`'s third argument to `false` to disable this. + +```js +const $ = cheerio.load('
    ...
', null, false); + +$.html(); +//=> '
    ...
' +``` + +Optionally, you can also load in the HTML by passing the string as the context: + +```js +$('ul', '
    ...
'); +``` + +Or as the root: + +```js +$('li', 'ul', '
    ...
'); +``` + +If you need to modify parsing options for XML input, you may pass an extra +object to `.load()`: + +```js +const $ = cheerio.load('
    ...
', { + xml: { + normalizeWhitespace: true, + }, +}); +``` + +The options in the `xml` object are taken directly from [htmlparser2](https://github.com/fb55/htmlparser2/wiki/Parser-options), therefore any options that can be used in `htmlparser2` are valid in cheerio as well. When `xml` is set, the default options are: + +```js +{ + xmlMode: true, + decodeEntities: true, // Decode HTML entities. + withStartIndices: false, // Add a `startIndex` property to nodes. + withEndIndices: false, // Add an `endIndex` property to nodes. +} +``` + +For a full list of options and their effects, see [domhandler](https://github.com/fb55/DomHandler) and +[htmlparser2's options](https://github.com/fb55/htmlparser2/wiki/Parser-options). + +#### Using `htmlparser2` + +Cheerio ships with two parsers, `parse5` and `htmlparser2`. The +former is the default for HTML, the latter the default for XML. + +Some users may wish to parse markup with the `htmlparser2` library, and +traverse/manipulate the resulting structure with Cheerio. This may be the case +for those upgrading from pre-1.0 releases of Cheerio (which relied on +`htmlparser2`), for those dealing with invalid markup (because `htmlparser2` is +more forgiving), or for those operating in performance-critical situations +(because `htmlparser2` may be faster in some cases). Note that "more forgiving" +means `htmlparser2` has error-correcting mechanisms that aren't always a match +for the standards observed by web browsers. This behavior may be useful when +parsing non-HTML content. + +To support these cases, `load` also accepts a `htmlparser2`-compatible data +structure as its first argument. Users may install `htmlparser2`, use it to +parse input, and pass the result to `load`: + +```js +// Usage as of htmlparser2 version 6: +const htmlparser2 = require('htmlparser2'); +const dom = htmlparser2.parseDocument(document, options); + +const $ = cheerio.load(dom); +``` + +If you want to save some bytes, you can use Cheerio's _slim_ export, which +always uses `htmlparser2`: + +```js +const cheerio = require('cheerio/lib/slim'); +``` + +### Selectors + +Cheerio's selector implementation is nearly identical to jQuery's, so the API is very similar. + +#### \$( selector, [context], [root] ) + +`selector` searches within the `context` scope which searches within the `root` scope. `selector` and `context` can be a string expression, DOM Element, array of DOM elements, or cheerio object. `root` is typically the HTML document string. + +This selector method is the starting point for traversing and manipulating the document. Like jQuery, it's the primary method for selecting elements in the document. + +```js +$('.apple', '#fruits').text(); +//=> Apple + +$('ul .pear').attr('class'); +//=> pear + +$('li[class=orange]').html(); +//=> Orange +``` + +##### XML Namespaces + +You can select with XML Namespaces but [due to the CSS specification](https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#attribute-selectors), the colon (`:`) needs to be escaped for the selector to be valid. + +```js +$('[xml\\:id="main"'); +``` + +### Rendering + +When you're ready to render the document, you can call the `html` method on the "root" selection: + +```js +$.root().html(); +//=> +// +// +//
    +//
  • Apple
  • +//
  • Orange
  • +//
  • Pear
  • +//
+// +// +``` + +If you want to render the [`outerHTML`](https://developer.mozilla.org/en-US/docs/Web/API/Element/outerHTML) of a selection, you can use the `html` utility functon: + +```js +cheerio.html($('.pear')); +//=>
  • Pear
  • +``` + +You may also render the text content of a Cheerio object using the `text` static method: + +```js +const $ = cheerio.load('This is content.'); +cheerio.text($('body')); +//=> This is content. +``` + +### Plugins + +Once you have loaded a document, you may extend the prototype or the equivalent `fn` property with custom plugin methods: + +```js +const $ = cheerio.load('Hello, world!'); +$.prototype.logHtml = function () { + console.log(this.html()); +}; + +$('body').logHtml(); // logs "Hello, world!" to the console +``` + +If you're using TypeScript, you should add a type definition for your new method: + +```ts +declare module 'cheerio' { + interface Cheerio { + logHtml(this: Cheerio): void; + } +} +``` + +### The "DOM Node" object + +Cheerio collections are made up of objects that bear some resemblance to [browser-based DOM nodes](https://developer.mozilla.org/en-US/docs/Web/API/Node). You can expect them to define the following properties: + +- `tagName` +- `parentNode` +- `previousSibling` +- `nextSibling` +- `nodeValue` +- `firstChild` +- `childNodes` +- `lastChild` + +## Screencasts + +[https://vimeo.com/31950192](https://vimeo.com/31950192) + +> This video tutorial is a follow-up to Nettut's "How to Scrape Web Pages with Node.js and jQuery", using cheerio instead of JSDOM + jQuery. This video shows how easy it is to use cheerio and how much faster cheerio is than JSDOM + jQuery. + +## Cheerio in the real world + +Are you using cheerio in production? Add it to the [wiki](https://github.com/cheeriojs/cheerio/wiki/Cheerio-in-Production)! + +## Sponsors + +Does your company use Cheerio in production? Please consider [sponsoring this project](https://github.com/cheeriojs/cheerio?sponsor=1)! Your help will allow maintainers to dedicate more time and resources to its development and support. + + + + + GitHub + + + CryptoCasinos + + + Casinoonlineaams.com + + + Casinofiables.com + + + Apify + + + Free Bets + + + Casino utan svensk licens + + + Casino utan svensk licens + + + + +## Backers + +[Become a backer](https://github.com/cheeriojs/cheerio?sponsor=1) to show your support for Cheerio and help us maintain and improve this open source project. + + + + + Airbnb + + + Vasy Kafidoff + + + Espen Klem + + + Jarrod Davis + + + Nishant Singh + + + Gautham Chandra + + + Charles Severance + + + + +## Special Thanks + +This library stands on the shoulders of some incredible developers. A special thanks to: + +**• @FB55 for node-htmlparser2 & CSSSelect:** +Felix has a knack for writing speedy parsing engines. He completely re-wrote both @tautologistic's `node-htmlparser` and @harry's `node-soupselect` from the ground up, making both of them much faster and more flexible. Cheerio would not be possible without his foundational work + +**• @jQuery team for jQuery:** +The core API is the best of its class and despite dealing with all the browser inconsistencies the code base is extremely clean and easy to follow. Much of cheerio's implementation and documentation is from jQuery. Thanks guys. + +**• @visionmedia:** +The style, the structure, the open-source"-ness" of this library comes from studying TJ's style and using many of his libraries. This dude consistently pumps out high-quality libraries and has always been more than willing to help or answer questions. You rock TJ. + +## License + +MIT diff --git a/includes/external/addressbook/node_modules/cheerio/lib/api/attributes.d.ts b/includes/external/addressbook/node_modules/cheerio/lib/api/attributes.d.ts new file mode 100644 index 0000000..a310693 --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio/lib/api/attributes.d.ts @@ -0,0 +1,332 @@ +/** + * Methods for getting and modifying attributes. + * + * @module cheerio/attributes + */ +import type { AnyNode, Element } from 'domhandler'; +import type { Cheerio } from '../cheerio.js'; +/** + * Method for getting attributes. Gets the attribute value for only the first + * element in the matched set. + * + * @category Attributes + * @example + * + * ```js + * $('ul').attr('id'); + * //=> fruits + * ``` + * + * @param name - Name of the attribute. + * @returns The attribute's value. + * @see {@link https://api.jquery.com/attr/} + */ +export declare function attr(this: Cheerio, name: string): string | undefined; +/** + * Method for getting all attributes and their values of the first element in + * the matched set. + * + * @category Attributes + * @example + * + * ```js + * $('ul').attr(); + * //=> { id: 'fruits' } + * ``` + * + * @returns The attribute's values. + * @see {@link https://api.jquery.com/attr/} + */ +export declare function attr(this: Cheerio): Record | undefined; +/** + * Method for setting attributes. Sets the attribute value for only the first + * element in the matched set. If you set an attribute's value to `null`, you + * remove that attribute. You may also pass a `map` and `function`. + * + * @category Attributes + * @example + * + * ```js + * $('.apple').attr('id', 'favorite').html(); + * //=>
  • Apple
  • + * ``` + * + * @param name - Name of the attribute. + * @param value - The new value of the attribute. + * @returns The instance itself. + * @see {@link https://api.jquery.com/attr/} + */ +export declare function attr(this: Cheerio, name: string, value?: string | null | ((this: Element, i: number, attrib: string) => string | null)): Cheerio; +/** + * Method for setting multiple attributes at once. Sets the attribute value for + * only the first element in the matched set. If you set an attribute's value to + * `null`, you remove that attribute. + * + * @category Attributes + * @example + * + * ```js + * $('.apple').attr({ id: 'favorite' }).html(); + * //=>
  • Apple
  • + * ``` + * + * @param values - Map of attribute names and values. + * @returns The instance itself. + * @see {@link https://api.jquery.com/attr/} + */ +export declare function attr(this: Cheerio, values: Record): Cheerio; +interface StyleProp { + length: number; + [key: string]: string | number; + [index: number]: string; +} +/** + * Method for getting and setting properties. Gets the property value for only + * the first element in the matched set. + * + * @category Attributes + * @example + * + * ```js + * $('input[type="checkbox"]').prop('checked'); + * //=> false + * + * $('input[type="checkbox"]').prop('checked', true).val(); + * //=> ok + * ``` + * + * @param name - Name of the property. + * @param value - If specified set the property to this. + * @returns If `value` is specified the instance itself, otherwise the prop's value. + * @see {@link https://api.jquery.com/prop/} + */ +export declare function prop(this: Cheerio, name: 'tagName' | 'nodeName'): T extends Element ? string : undefined; +export declare function prop(this: Cheerio, name: 'innerHTML' | 'outerHTML' | 'innerText' | 'textContent'): string | null; +/** Get a parsed CSS style object. */ +export declare function prop(this: Cheerio, name: 'style'): StyleProp | undefined; +/** + * Resolve `href` or `src` of supported elements. Requires the `baseURI` option + * to be set, and a global `URL` object to be part of the environment. + * + * @example With `baseURI` set to `'https://example.com'`: + * + * ```js + * $('').prop('src'); + * //=> 'https://example.com/image.png' + * ``` + */ +export declare function prop(this: Cheerio, name: 'href' | 'src'): string | undefined; +/** Get a property of an element. */ +export declare function prop(this: Cheerio, name: K): Element[K]; +/** Set a property of an element. */ +export declare function prop(this: Cheerio, name: K, value: Element[K] | ((this: Element, i: number, prop: K) => Element[keyof Element])): Cheerio; +export declare function prop(this: Cheerio, name: Record): Cheerio; +export declare function prop(this: Cheerio, name: string, value: string | boolean | null | ((this: Element, i: number, prop: string) => string | boolean)): Cheerio; +export declare function prop(this: Cheerio, name: string): string; +/** + * Method for getting data attributes, for only the first element in the matched set. + * + * @category Attributes + * @example + * + * ```js + * $('
    ').data('apple-color'); + * //=> 'red' + * ``` + * + * @param name - Name of the data attribute. + * @returns The data attribute's value, or `undefined` if the attribute does not exist. + * @see {@link https://api.jquery.com/data/} + */ +export declare function data(this: Cheerio, name: string): unknown | undefined; +/** + * Method for getting all of an element's data attributes, for only the first + * element in the matched set. + * + * @category Attributes + * @example + * + * ```js + * $('
    ').data(); + * //=> { appleColor: 'red' } + * ``` + * + * @returns A map with all of the data attributes. + * @see {@link https://api.jquery.com/data/} + */ +export declare function data(this: Cheerio): Record; +/** + * Method for setting data attributes, for only the first element in the matched set. + * + * @category Attributes + * @example + * + * ```js + * const apple = $('.apple').data('kind', 'mac'); + * + * apple.data('kind'); + * //=> 'mac' + * ``` + * + * @param name - Name of the data attribute. + * @param value - The new value. + * @returns The instance itself. + * @see {@link https://api.jquery.com/data/} + */ +export declare function data(this: Cheerio, name: string, value: unknown): Cheerio; +/** + * Method for setting multiple data attributes at once, for only the first + * element in the matched set. + * + * @category Attributes + * @example + * + * ```js + * const apple = $('.apple').data({ kind: 'mac' }); + * + * apple.data('kind'); + * //=> 'mac' + * ``` + * + * @param values - Map of names to values. + * @returns The instance itself. + * @see {@link https://api.jquery.com/data/} + */ +export declare function data(this: Cheerio, values: Record): Cheerio; +/** + * Method for getting the value of input, select, and textarea. Note: Support + * for `map`, and `function` has not been added yet. + * + * @category Attributes + * @example + * + * ```js + * $('input[type="text"]').val(); + * //=> input_text + * ``` + * + * @returns The value. + * @see {@link https://api.jquery.com/val/} + */ +export declare function val(this: Cheerio): string | undefined | string[]; +/** + * Method for setting the value of input, select, and textarea. Note: Support + * for `map`, and `function` has not been added yet. + * + * @category Attributes + * @example + * + * ```js + * $('input[type="text"]').val('test').html(); + * //=> + * ``` + * + * @param value - The new value. + * @returns The instance itself. + * @see {@link https://api.jquery.com/val/} + */ +export declare function val(this: Cheerio, value: string | string[]): Cheerio; +/** + * Method for removing attributes by `name`. + * + * @category Attributes + * @example + * + * ```js + * $('.pear').removeAttr('class').html(); + * //=>
  • Pear
  • + * + * $('.apple').attr('id', 'favorite'); + * $('.apple').removeAttr('id class').html(); + * //=>
  • Apple
  • + * ``` + * + * @param name - Name of the attribute. + * @returns The instance itself. + * @see {@link https://api.jquery.com/removeAttr/} + */ +export declare function removeAttr(this: Cheerio, name: string): Cheerio; +/** + * Check to see if _any_ of the matched elements have the given `className`. + * + * @category Attributes + * @example + * + * ```js + * $('.pear').hasClass('pear'); + * //=> true + * + * $('apple').hasClass('fruit'); + * //=> false + * + * $('li').hasClass('pear'); + * //=> true + * ``` + * + * @param className - Name of the class. + * @returns Indicates if an element has the given `className`. + * @see {@link https://api.jquery.com/hasClass/} + */ +export declare function hasClass(this: Cheerio, className: string): boolean; +/** + * Adds class(es) to all of the matched elements. Also accepts a `function`. + * + * @category Attributes + * @example + * + * ```js + * $('.pear').addClass('fruit').html(); + * //=>
  • Pear
  • + * + * $('.apple').addClass('fruit red').html(); + * //=>
  • Apple
  • + * ``` + * + * @param value - Name of new class. + * @returns The instance itself. + * @see {@link https://api.jquery.com/addClass/} + */ +export declare function addClass>(this: R, value?: string | ((this: Element, i: number, className: string) => string | undefined)): R; +/** + * Removes one or more space-separated classes from the selected elements. If no + * `className` is defined, all classes will be removed. Also accepts a `function`. + * + * @category Attributes + * @example + * + * ```js + * $('.pear').removeClass('pear').html(); + * //=>
  • Pear
  • + * + * $('.apple').addClass('red').removeClass().html(); + * //=>
  • Apple
  • + * ``` + * + * @param name - Name of the class. If not specified, removes all elements. + * @returns The instance itself. + * @see {@link https://api.jquery.com/removeClass/} + */ +export declare function removeClass>(this: R, name?: string | ((this: Element, i: number, className: string) => string | undefined)): R; +/** + * Add or remove class(es) from the matched elements, depending on either the + * class's presence or the value of the switch argument. Also accepts a `function`. + * + * @category Attributes + * @example + * + * ```js + * $('.apple.green').toggleClass('fruit green red').html(); + * //=>
  • Apple
  • + * + * $('.apple.green').toggleClass('fruit green red', true).html(); + * //=>
  • Apple
  • + * ``` + * + * @param value - Name of the class. Can also be a function. + * @param stateVal - If specified the state of the class. + * @returns The instance itself. + * @see {@link https://api.jquery.com/toggleClass/} + */ +export declare function toggleClass>(this: R, value?: string | ((this: Element, i: number, className: string, stateVal?: boolean) => string), stateVal?: boolean): R; +export {}; +//# sourceMappingURL=attributes.d.ts.map \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cheerio/lib/api/attributes.d.ts.map b/includes/external/addressbook/node_modules/cheerio/lib/api/attributes.d.ts.map new file mode 100644 index 0000000..d333c5d --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio/lib/api/attributes.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"attributes.d.ts","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["api/attributes.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cheerio/lib/api/attributes.js b/includes/external/addressbook/node_modules/cheerio/lib/api/attributes.js new file mode 100644 index 0000000..ab93c6d --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio/lib/api/attributes.js @@ -0,0 +1,622 @@ +"use strict"; +/** + * Methods for getting and modifying attributes. + * + * @module cheerio/attributes + */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.toggleClass = exports.removeClass = exports.addClass = exports.hasClass = exports.removeAttr = exports.val = exports.data = exports.prop = exports.attr = void 0; +var static_js_1 = require("../static.js"); +var utils_js_1 = require("../utils.js"); +var domutils_1 = require("domutils"); +var hasOwn = Object.prototype.hasOwnProperty; +var rspace = /\s+/; +var dataAttrPrefix = 'data-'; +/* + * Lookup table for coercing string data-* attributes to their corresponding + * JavaScript primitives + */ +var primitives = { + null: null, + true: true, + false: false, +}; +// Attributes that are booleans +var rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i; +// Matches strings that look like JSON objects or arrays +var rbrace = /^{[^]*}$|^\[[^]*]$/; +function getAttr(elem, name, xmlMode) { + var _a; + if (!elem || !(0, utils_js_1.isTag)(elem)) + return undefined; + (_a = elem.attribs) !== null && _a !== void 0 ? _a : (elem.attribs = {}); + // Return the entire attribs object if no attribute specified + if (!name) { + return elem.attribs; + } + if (hasOwn.call(elem.attribs, name)) { + // Get the (decoded) attribute + return !xmlMode && rboolean.test(name) ? name : elem.attribs[name]; + } + // Mimic the DOM and return text content as value for `option's` + if (elem.name === 'option' && name === 'value') { + return (0, static_js_1.text)(elem.children); + } + // Mimic DOM with default value for radios/checkboxes + if (elem.name === 'input' && + (elem.attribs['type'] === 'radio' || elem.attribs['type'] === 'checkbox') && + name === 'value') { + return 'on'; + } + return undefined; +} +/** + * Sets the value of an attribute. The attribute will be deleted if the value is `null`. + * + * @private + * @param el - The element to set the attribute on. + * @param name - The attribute's name. + * @param value - The attribute's value. + */ +function setAttr(el, name, value) { + if (value === null) { + removeAttribute(el, name); + } + else { + el.attribs[name] = "".concat(value); + } +} +function attr(name, value) { + // Set the value (with attr map support) + if (typeof name === 'object' || value !== undefined) { + if (typeof value === 'function') { + if (typeof name !== 'string') { + { + throw new Error('Bad combination of arguments.'); + } + } + return (0, utils_js_1.domEach)(this, function (el, i) { + if ((0, utils_js_1.isTag)(el)) + setAttr(el, name, value.call(el, i, el.attribs[name])); + }); + } + return (0, utils_js_1.domEach)(this, function (el) { + if (!(0, utils_js_1.isTag)(el)) + return; + if (typeof name === 'object') { + Object.keys(name).forEach(function (objName) { + var objValue = name[objName]; + setAttr(el, objName, objValue); + }); + } + else { + setAttr(el, name, value); + } + }); + } + return arguments.length > 1 + ? this + : getAttr(this[0], name, this.options.xmlMode); +} +exports.attr = attr; +/** + * Gets a node's prop. + * + * @private + * @category Attributes + * @param el - Element to get the prop of. + * @param name - Name of the prop. + * @returns The prop's value. + */ +function getProp(el, name, xmlMode) { + return name in el + ? // @ts-expect-error TS doesn't like us accessing the value directly here. + el[name] + : !xmlMode && rboolean.test(name) + ? getAttr(el, name, false) !== undefined + : getAttr(el, name, xmlMode); +} +/** + * Sets the value of a prop. + * + * @private + * @param el - The element to set the prop on. + * @param name - The prop's name. + * @param value - The prop's value. + */ +function setProp(el, name, value, xmlMode) { + if (name in el) { + // @ts-expect-error Overriding value + el[name] = value; + } + else { + setAttr(el, name, !xmlMode && rboolean.test(name) ? (value ? '' : null) : "".concat(value)); + } +} +function prop(name, value) { + var _this = this; + var _a; + if (typeof name === 'string' && value === undefined) { + var el = this[0]; + if (!el || !(0, utils_js_1.isTag)(el)) + return undefined; + switch (name) { + case 'style': { + var property_1 = this.css(); + var keys = Object.keys(property_1); + keys.forEach(function (p, i) { + property_1[i] = p; + }); + property_1.length = keys.length; + return property_1; + } + case 'tagName': + case 'nodeName': { + return el.name.toUpperCase(); + } + case 'href': + case 'src': { + var prop_1 = (_a = el.attribs) === null || _a === void 0 ? void 0 : _a[name]; + /* eslint-disable node/no-unsupported-features/node-builtins */ + 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'))) && + prop_1 !== undefined && + this.options.baseURI) { + return new URL(prop_1, this.options.baseURI).href; + } + /* eslint-enable node/no-unsupported-features/node-builtins */ + return prop_1; + } + case 'innerText': { + return (0, domutils_1.innerText)(el); + } + case 'textContent': { + return (0, domutils_1.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 !== undefined) { + if (typeof value === 'function') { + if (typeof name === 'object') { + throw new Error('Bad combination of arguments.'); + } + return (0, utils_js_1.domEach)(this, function (el, i) { + if ((0, utils_js_1.isTag)(el)) { + setProp(el, name, value.call(el, i, getProp(el, name, _this.options.xmlMode)), _this.options.xmlMode); + } + }); + } + return (0, utils_js_1.domEach)(this, function (el) { + if (!(0, utils_js_1.isTag)(el)) + return; + if (typeof name === 'object') { + Object.keys(name).forEach(function (key) { + var val = name[key]; + setProp(el, key, val, _this.options.xmlMode); + }); + } + else { + setProp(el, name, value, _this.options.xmlMode); + } + }); + } + return undefined; +} +exports.prop = prop; +/** + * Sets the value of a data attribute. + * + * @private + * @param el - The element to set the data attribute on. + * @param name - The data attribute's name. + * @param value - The data attribute's value. + */ +function setData(el, name, value) { + var _a; + var 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 !== undefined) { + elem.data[name] = value; + } +} +/** + * Read the specified attribute from the equivalent HTML5 `data-*` attribute, + * and (if present) cache the value in the node's internal data store. If no + * attribute name is specified, read _all_ HTML5 `data-*` attributes in this manner. + * + * @private + * @category Attributes + * @param el - Element to get the data attribute of. + * @param name - Name of the data attribute. + * @returns The data attribute's value, or a map with all of the data attributes. + */ +function readData(el, name) { + var domNames; + var jsNames; + var value; + if (name == null) { + domNames = Object.keys(el.attribs).filter(function (attrName) { + return attrName.startsWith(dataAttrPrefix); + }); + jsNames = domNames.map(function (domName) { + return (0, utils_js_1.camelCase)(domName.slice(dataAttrPrefix.length)); + }); + } + else { + domNames = [dataAttrPrefix + (0, utils_js_1.cssCase)(name)]; + jsNames = [name]; + } + for (var idx = 0; idx < domNames.length; ++idx) { + var domName = domNames[idx]; + var 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) { + /* Ignore */ + } + } + el.data[jsName] = value; + } + } + return name == null ? el.data : value; +} +function data(name, value) { + var _a; + var elem = this[0]; + if (!elem || !(0, utils_js_1.isTag)(elem)) + return; + var dataEl = elem; + (_a = dataEl.data) !== null && _a !== void 0 ? _a : (dataEl.data = {}); + // Return the entire data object if no data specified + if (!name) { + return readData(dataEl); + } + // Set the value (with attr map support) + if (typeof name === 'object' || value !== undefined) { + (0, utils_js_1.domEach)(this, function (el) { + if ((0, utils_js_1.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); +} +exports.data = data; +function val(value) { + var querying = arguments.length === 0; + var element = this[0]; + if (!element || !(0, utils_js_1.isTag)(element)) + return querying ? undefined : this; + switch (element.name) { + case 'textarea': + return this.text(value); + case 'select': { + var option = this.find('option:selected'); + if (!querying) { + if (this.attr('multiple') == null && typeof value === 'object') { + return this; + } + this.find('option').removeAttr('selected'); + var values = typeof value !== 'object' ? [value] : value; + for (var i = 0; i < values.length; i++) { + this.find("option[value=\"".concat(values[i], "\"]")).attr('selected', ''); + } + return this; + } + return this.attr('multiple') + ? option.toArray().map(function (el) { return (0, static_js_1.text)(el.children); }) + : option.attr('value'); + } + case 'input': + case 'option': + return querying + ? this.attr('value') + : this.attr('value', value); + } + return undefined; +} +exports.val = val; +/** + * Remove an attribute. + * + * @private + * @param elem - Node to remove attribute from. + * @param name - Name of the attribute to remove. + */ +function removeAttribute(elem, name) { + if (!elem.attribs || !hasOwn.call(elem.attribs, name)) + return; + delete elem.attribs[name]; +} +/** + * Splits a space-separated list of names to individual names. + * + * @category Attributes + * @param names - Names to split. + * @returns - Split names. + */ +function splitNames(names) { + return names ? names.trim().split(rspace) : []; +} +/** + * Method for removing attributes by `name`. + * + * @category Attributes + * @example + * + * ```js + * $('.pear').removeAttr('class').html(); + * //=>
  • Pear
  • + * + * $('.apple').attr('id', 'favorite'); + * $('.apple').removeAttr('id class').html(); + * //=>
  • Apple
  • + * ``` + * + * @param name - Name of the attribute. + * @returns The instance itself. + * @see {@link https://api.jquery.com/removeAttr/} + */ +function removeAttr(name) { + var attrNames = splitNames(name); + var _loop_1 = function (i) { + (0, utils_js_1.domEach)(this_1, function (elem) { + if ((0, utils_js_1.isTag)(elem)) + removeAttribute(elem, attrNames[i]); + }); + }; + var this_1 = this; + for (var i = 0; i < attrNames.length; i++) { + _loop_1(i); + } + return this; +} +exports.removeAttr = removeAttr; +/** + * Check to see if _any_ of the matched elements have the given `className`. + * + * @category Attributes + * @example + * + * ```js + * $('.pear').hasClass('pear'); + * //=> true + * + * $('apple').hasClass('fruit'); + * //=> false + * + * $('li').hasClass('pear'); + * //=> true + * ``` + * + * @param className - Name of the class. + * @returns Indicates if an element has the given `className`. + * @see {@link https://api.jquery.com/hasClass/} + */ +function hasClass(className) { + return this.toArray().some(function (elem) { + var clazz = (0, utils_js_1.isTag)(elem) && elem.attribs['class']; + var idx = -1; + if (clazz && className.length) { + while ((idx = clazz.indexOf(className, idx + 1)) > -1) { + var end = idx + className.length; + if ((idx === 0 || rspace.test(clazz[idx - 1])) && + (end === clazz.length || rspace.test(clazz[end]))) { + return true; + } + } + } + return false; + }); +} +exports.hasClass = hasClass; +/** + * Adds class(es) to all of the matched elements. Also accepts a `function`. + * + * @category Attributes + * @example + * + * ```js + * $('.pear').addClass('fruit').html(); + * //=>
  • Pear
  • + * + * $('.apple').addClass('fruit red').html(); + * //=>
  • Apple
  • + * ``` + * + * @param value - Name of new class. + * @returns The instance itself. + * @see {@link https://api.jquery.com/addClass/} + */ +function addClass(value) { + // Support functions + if (typeof value === 'function') { + return (0, utils_js_1.domEach)(this, function (el, i) { + if ((0, utils_js_1.isTag)(el)) { + var className = el.attribs['class'] || ''; + addClass.call([el], value.call(el, i, className)); + } + }); + } + // Return if no value or not a string or function + if (!value || typeof value !== 'string') + return this; + var classNames = value.split(rspace); + var numElements = this.length; + for (var i = 0; i < numElements; i++) { + var el = this[i]; + // If selected element isn't a tag, move on + if (!(0, utils_js_1.isTag)(el)) + continue; + // If we don't already have classes — always set xmlMode to false here, as it doesn't matter for classes + var className = getAttr(el, 'class', false); + if (!className) { + setAttr(el, 'class', classNames.join(' ').trim()); + } + else { + var setClass = " ".concat(className, " "); + // Check if class already exists + for (var j = 0; j < classNames.length; j++) { + var appendClass = "".concat(classNames[j], " "); + if (!setClass.includes(" ".concat(appendClass))) + setClass += appendClass; + } + setAttr(el, 'class', setClass.trim()); + } + } + return this; +} +exports.addClass = addClass; +/** + * Removes one or more space-separated classes from the selected elements. If no + * `className` is defined, all classes will be removed. Also accepts a `function`. + * + * @category Attributes + * @example + * + * ```js + * $('.pear').removeClass('pear').html(); + * //=>
  • Pear
  • + * + * $('.apple').addClass('red').removeClass().html(); + * //=>
  • Apple
  • + * ``` + * + * @param name - Name of the class. If not specified, removes all elements. + * @returns The instance itself. + * @see {@link https://api.jquery.com/removeClass/} + */ +function removeClass(name) { + // Handle if value is a function + if (typeof name === 'function') { + return (0, utils_js_1.domEach)(this, function (el, i) { + if ((0, utils_js_1.isTag)(el)) { + removeClass.call([el], name.call(el, i, el.attribs['class'] || '')); + } + }); + } + var classes = splitNames(name); + var numClasses = classes.length; + var removeAll = arguments.length === 0; + return (0, utils_js_1.domEach)(this, function (el) { + if (!(0, utils_js_1.isTag)(el)) + return; + if (removeAll) { + // Short circuit the remove all case as this is the nice one + el.attribs['class'] = ''; + } + else { + var elClasses = splitNames(el.attribs['class']); + var changed = false; + for (var j = 0; j < numClasses; j++) { + var index = elClasses.indexOf(classes[j]); + if (index >= 0) { + elClasses.splice(index, 1); + changed = true; + /* + * We have to do another pass to ensure that there are not duplicate + * classes listed + */ + j--; + } + } + if (changed) { + el.attribs['class'] = elClasses.join(' '); + } + } + }); +} +exports.removeClass = removeClass; +/** + * Add or remove class(es) from the matched elements, depending on either the + * class's presence or the value of the switch argument. Also accepts a `function`. + * + * @category Attributes + * @example + * + * ```js + * $('.apple.green').toggleClass('fruit green red').html(); + * //=>
  • Apple
  • + * + * $('.apple.green').toggleClass('fruit green red', true).html(); + * //=>
  • Apple
  • + * ``` + * + * @param value - Name of the class. Can also be a function. + * @param stateVal - If specified the state of the class. + * @returns The instance itself. + * @see {@link https://api.jquery.com/toggleClass/} + */ +function toggleClass(value, stateVal) { + // Support functions + if (typeof value === 'function') { + return (0, utils_js_1.domEach)(this, function (el, i) { + if ((0, utils_js_1.isTag)(el)) { + toggleClass.call([el], value.call(el, i, el.attribs['class'] || '', stateVal), stateVal); + } + }); + } + // Return if no value or not a string or function + if (!value || typeof value !== 'string') + return this; + var classNames = value.split(rspace); + var numClasses = classNames.length; + var state = typeof stateVal === 'boolean' ? (stateVal ? 1 : -1) : 0; + var numElements = this.length; + for (var i = 0; i < numElements; i++) { + var el = this[i]; + // If selected element isn't a tag, move on + if (!(0, utils_js_1.isTag)(el)) + continue; + var elementClasses = splitNames(el.attribs['class']); + // Check if class already exists + for (var j = 0; j < numClasses; j++) { + // Check if the class name is currently defined + var index = elementClasses.indexOf(classNames[j]); + // Add if stateValue === true or we are toggling and there is no value + if (state >= 0 && index < 0) { + elementClasses.push(classNames[j]); + } + else if (state <= 0 && index >= 0) { + // Otherwise remove but only if the item exists + elementClasses.splice(index, 1); + } + } + el.attribs['class'] = elementClasses.join(' '); + } + return this; +} +exports.toggleClass = toggleClass; +//# sourceMappingURL=attributes.js.map \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cheerio/lib/api/attributes.js.map b/includes/external/addressbook/node_modules/cheerio/lib/api/attributes.js.map new file mode 100644 index 0000000..d24957c --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio/lib/api/attributes.js.map @@ -0,0 +1 @@ +{"version":3,"file":"attributes.js","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["api/attributes.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cheerio/lib/api/css.d.ts b/includes/external/addressbook/node_modules/cheerio/lib/api/css.d.ts new file mode 100644 index 0000000..4ff2510 --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio/lib/api/css.d.ts @@ -0,0 +1,40 @@ +import type { Element, AnyNode } from 'domhandler'; +import type { Cheerio } from '../cheerio.js'; +/** + * Get the value of a style property for the first element in the set of matched elements. + * + * @category CSS + * @param names - Optionally the names of the properties of interest. + * @returns A map of all of the style properties. + * @see {@link https://api.jquery.com/css/} + */ +export declare function css(this: Cheerio, names?: string[]): Record | undefined; +/** + * Get the value of a style property for the first element in the set of matched elements. + * + * @category CSS + * @param names - The name of the property. + * @returns The property value for the given name. + * @see {@link https://api.jquery.com/css/} + */ +export declare function css(this: Cheerio, name: string): string | undefined; +/** + * Set one CSS property for every matched element. + * + * @category CSS + * @param prop - The name of the property. + * @param val - The new value. + * @returns The instance itself. + * @see {@link https://api.jquery.com/css/} + */ +export declare function css(this: Cheerio, prop: string, val: string | ((this: Element, i: number, style: string) => string | undefined)): Cheerio; +/** + * Set multiple CSS properties for every matched element. + * + * @category CSS + * @param map - A map of property names and values. + * @returns The instance itself. + * @see {@link https://api.jquery.com/css/} + */ +export declare function css(this: Cheerio, map: Record): Cheerio; +//# sourceMappingURL=css.d.ts.map \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cheerio/lib/api/css.d.ts.map b/includes/external/addressbook/node_modules/cheerio/lib/api/css.d.ts.map new file mode 100644 index 0000000..f10b6c8 --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio/lib/api/css.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"css.d.ts","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["api/css.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C;;;;;;;GAOG;AACH,wBAAgB,GAAG,CAAC,CAAC,SAAS,OAAO,EACnC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,KAAK,CAAC,EAAE,MAAM,EAAE,GACf,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;AACtC;;;;;;;GAOG;AACH,wBAAgB,GAAG,CAAC,CAAC,SAAS,OAAO,EACnC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,SAAS,CAAC;AACtB;;;;;;;;GAQG;AACH,wBAAgB,GAAG,CAAC,CAAC,SAAS,OAAO,EACnC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,IAAI,EAAE,MAAM,EACZ,GAAG,EACC,MAAM,GACN,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC,GACpE,OAAO,CAAC,CAAC,CAAC,CAAC;AACd;;;;;;;GAOG;AACH,wBAAgB,GAAG,CAAC,CAAC,SAAS,OAAO,EACnC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1B,OAAO,CAAC,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cheerio/lib/api/css.js b/includes/external/addressbook/node_modules/cheerio/lib/api/css.js new file mode 100644 index 0000000..9389c29 --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio/lib/api/css.js @@ -0,0 +1,118 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.css = void 0; +var utils_js_1 = require("../utils.js"); +/** + * Set multiple CSS properties for every matched element. + * + * @category CSS + * @param prop - The names of the properties. + * @param val - The new values. + * @returns The instance itself. + * @see {@link https://api.jquery.com/css/} + */ +function css(prop, val) { + if ((prop != null && val != null) || + // When `prop` is a "plain" object + (typeof prop === 'object' && !Array.isArray(prop))) { + return (0, utils_js_1.domEach)(this, function (el, i) { + if ((0, utils_js_1.isTag)(el)) { + // `prop` can't be an array here anymore. + setCss(el, prop, val, i); + } + }); + } + if (this.length === 0) { + return undefined; + } + return getCss(this[0], prop); +} +exports.css = css; +/** + * Set styles of all elements. + * + * @private + * @param el - Element to set style of. + * @param prop - Name of property. + * @param value - Value to set property to. + * @param idx - Optional index within the selection. + */ +function setCss(el, prop, value, idx) { + if (typeof prop === 'string') { + var styles = getCss(el); + var val = typeof value === 'function' ? value.call(el, idx, styles[prop]) : value; + if (val === '') { + delete styles[prop]; + } + else if (val != null) { + styles[prop] = val; + } + el.attribs['style'] = stringify(styles); + } + else if (typeof prop === 'object') { + Object.keys(prop).forEach(function (k, i) { + setCss(el, k, prop[k], i); + }); + } +} +function getCss(el, prop) { + if (!el || !(0, utils_js_1.isTag)(el)) + return; + var styles = parse(el.attribs['style']); + if (typeof prop === 'string') { + return styles[prop]; + } + if (Array.isArray(prop)) { + var newStyles_1 = {}; + prop.forEach(function (item) { + if (styles[item] != null) { + newStyles_1[item] = styles[item]; + } + }); + return newStyles_1; + } + return styles; +} +/** + * Stringify `obj` to styles. + * + * @private + * @category CSS + * @param obj - Object to stringify. + * @returns The serialized styles. + */ +function stringify(obj) { + return Object.keys(obj).reduce(function (str, prop) { return "".concat(str).concat(str ? ' ' : '').concat(prop, ": ").concat(obj[prop], ";"); }, ''); +} +/** + * Parse `styles`. + * + * @private + * @category CSS + * @param styles - Styles to be parsed. + * @returns The parsed styles. + */ +function parse(styles) { + styles = (styles || '').trim(); + if (!styles) + return {}; + var obj = {}; + var key; + for (var _i = 0, _a = styles.split(';'); _i < _a.length; _i++) { + var str = _a[_i]; + var n = str.indexOf(':'); + // If there is no :, or if it is the first/last character, add to the previous item's value + if (n < 1 || n === str.length - 1) { + var trimmed = str.trimEnd(); + if (trimmed.length > 0 && key !== undefined) { + obj[key] += ";".concat(trimmed); + } + } + else { + key = str.slice(0, n).trim(); + obj[key] = str.slice(n + 1).trim(); + } + } + return obj; +} +//# sourceMappingURL=css.js.map \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cheerio/lib/api/css.js.map b/includes/external/addressbook/node_modules/cheerio/lib/api/css.js.map new file mode 100644 index 0000000..9053e0a --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio/lib/api/css.js.map @@ -0,0 +1 @@ +{"version":3,"file":"css.js","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["api/css.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cheerio/lib/api/forms.d.ts b/includes/external/addressbook/node_modules/cheerio/lib/api/forms.d.ts new file mode 100644 index 0000000..3b11493 --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio/lib/api/forms.d.ts @@ -0,0 +1,38 @@ +import type { AnyNode } from 'domhandler'; +import type { Cheerio } from '../cheerio.js'; +/** + * Encode a set of form elements as a string for submission. + * + * @category Forms + * @example + * + * ```js + * $('
    ').serialize(); + * //=> 'foo=bar' + * ``` + * + * @returns The serialized form. + * @see {@link https://api.jquery.com/serialize/} + */ +export declare function serialize(this: Cheerio): string; +interface SerializedField { + name: string; + value: string; +} +/** + * Encode a set of form elements as an array of names and values. + * + * @category Forms + * @example + * + * ```js + * $('
    ').serializeArray(); + * //=> [ { name: 'foo', value: 'bar' } ] + * ``` + * + * @returns The serialized form. + * @see {@link https://api.jquery.com/serializeArray/} + */ +export declare function serializeArray(this: Cheerio): SerializedField[]; +export {}; +//# sourceMappingURL=forms.d.ts.map \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cheerio/lib/api/forms.d.ts.map b/includes/external/addressbook/node_modules/cheerio/lib/api/forms.d.ts.map new file mode 100644 index 0000000..d27b568 --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio/lib/api/forms.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"forms.d.ts","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["api/forms.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAW7C;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAYrE;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,OAAO,EAC9C,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GACf,eAAe,EAAE,CAsCnB"} \ No newline at end of file diff --git a/includes/external/addressbook/node_modules/cheerio/lib/api/forms.js b/includes/external/addressbook/node_modules/cheerio/lib/api/forms.js new file mode 100644 index 0000000..a9f84a7 --- /dev/null +++ b/includes/external/addressbook/node_modules/cheerio/lib/api/forms.js @@ -0,0 +1,92 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.serializeArray = exports.serialize = void 0; +var utils_js_1 = require("../utils.js"); +/* + * https://github.com/jquery/jquery/blob/2.1.3/src/manipulation/var/rcheckableType.js + * https://github.com/jquery/jquery/blob/2.1.3/src/serialize.js + */ +var submittableSelector = 'input,select,textarea,keygen'; +var r20 = /%20/g; +var rCRLF = /\r?\n/g; +/** + * Encode a set of form elements as a string for submission. + * + * @category Forms + * @example + * + * ```js + * $('
    ').serialize(); + * //=> 'foo=bar' + * ``` + * + * @returns The serialized form. + * @see {@link https://api.jquery.com/serialize/} + */ +function serialize() { + // Convert form elements into name/value objects + var arr = this.serializeArray(); + // Serialize each element into a key/value string + var retArr = arr.map(function (data) { + return "".concat(encodeURIComponent(data.name), "=").concat(encodeURIComponent(data.value)); + }); + // Return the resulting serialization + return retArr.join('&').replace(r20, '+'); +} +exports.serialize = serialize; +/** + * Encode a set of form elements as an array of names and values. + * + * @category Forms + * @example + * + * ```js + * $('
    ').serializeArray(); + * //=> [ { name: 'foo', value: 'bar' } ] + * ``` + * + * @returns The serialized form. + * @see {@link https://api.jquery.com/serializeArray/} + */ +function serializeArray() { + var _this = this; + // Resolve all form elements from either forms or collections of form elements + return this.map(function (_, elem) { + var $elem = _this._make(elem); + if ((0, utils_js_1.isTag)(elem) && elem.name === 'form') { + return $elem.find(submittableSelector).toArray(); + } + return $elem.filter(submittableSelector).toArray(); + }) + .filter( + // Verify elements have a name (`attr.name`) and are not disabled (`:enabled`) + '[name!=""]:enabled' + + // And cannot be clicked (`[type=submit]`) or are used in `x-www-form-urlencoded` (`[type=file]`) + ':not(:submit, :button, :image, :reset, :file)' + + // And are either checked/don't have a checkable state + ':matches([checked], :not(:checkbox, :radio))' + // Convert each of the elements to its value(s) + ) + .map(function (_, elem) { + var _a; + var $elem = _this._make(elem); + var name = $elem.attr('name'); // We have filtered for elements with a name before. + // If there is no value set (e.g. `undefined`, `null`), then default value to empty + var value = (_a = $elem.val()) !== null && _a !== void 0 ? _a : ''; + // If we have an array of values (e.g. `