@iconify/tools 4.2.0 → 5.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/colors/attribs.d.ts +2 -4
- package/lib/colors/attribs.js +33 -0
- package/lib/colors/detect.d.ts +2 -10
- package/lib/colors/detect.js +36 -0
- package/lib/colors/parse.d.ts +12 -19
- package/lib/colors/parse.js +241 -0
- package/lib/colors/validate.d.ts +3 -13
- package/lib/colors/validate.js +31 -0
- package/lib/css/parse.d.ts +1 -2
- package/lib/css/parse.js +18 -0
- package/lib/css/parser/error.d.ts +6 -7
- package/lib/css/parser/error.js +24 -0
- package/lib/css/parser/export.d.ts +2 -4
- package/lib/css/parser/export.js +34 -0
- package/lib/css/parser/strings.d.ts +2 -4
- package/lib/css/parser/strings.js +66 -0
- package/lib/css/parser/text.d.ts +2 -4
- package/lib/css/parser/text.js +103 -0
- package/lib/css/parser/tokens.d.ts +3 -5
- package/lib/css/parser/tokens.js +169 -0
- package/lib/css/parser/tree.d.ts +2 -4
- package/lib/css/parser/tree.js +35 -0
- package/lib/css/parser/types.d.ts +21 -22
- package/lib/css/parser/types.js +1 -0
- package/lib/download/api/cache.d.ts +2 -4
- package/lib/download/api/cache.js +84 -0
- package/lib/download/api/config.d.ts +6 -8
- package/lib/download/api/config.js +10 -0
- package/lib/download/api/download.d.ts +2 -4
- package/lib/download/api/download.js +26 -0
- package/lib/download/api/fetch.d.ts +1 -2
- package/lib/download/api/fetch.js +15 -0
- package/lib/download/api/index.d.ts +2 -4
- package/lib/download/api/index.js +50 -0
- package/lib/download/api/queue.d.ts +9 -10
- package/lib/download/api/queue.js +94 -0
- package/lib/download/api/types.d.ts +6 -7
- package/lib/download/api/types.js +1 -0
- package/lib/download/git/branch.d.ts +2 -4
- package/lib/download/git/branch.js +15 -0
- package/lib/download/git/hash.d.ts +2 -4
- package/lib/download/git/hash.js +10 -0
- package/lib/download/git/index.d.ts +10 -12
- package/lib/download/git/index.js +39 -0
- package/lib/download/git/reset.d.ts +1 -2
- package/lib/download/git/reset.js +12 -0
- package/lib/download/github/hash.d.ts +2 -4
- package/lib/download/github/hash.js +20 -0
- package/lib/download/github/index.d.ts +12 -14
- package/lib/download/github/index.js +66 -0
- package/lib/download/github/types.d.ts +5 -6
- package/lib/download/github/types.js +1 -0
- package/lib/download/gitlab/hash.d.ts +2 -4
- package/lib/download/gitlab/hash.js +19 -0
- package/lib/download/gitlab/index.d.ts +12 -14
- package/lib/download/gitlab/index.js +64 -0
- package/lib/download/gitlab/types.d.ts +5 -6
- package/lib/download/gitlab/types.js +6 -0
- package/lib/download/helpers/untar.d.ts +1 -2
- package/lib/download/helpers/untar.js +13 -0
- package/lib/download/helpers/unzip.d.ts +1 -2
- package/lib/download/helpers/unzip.js +39 -0
- package/lib/download/index.d.ts +15 -20
- package/lib/download/index.js +19 -0
- package/lib/download/npm/index.d.ts +11 -13
- package/lib/download/npm/index.js +51 -0
- package/lib/download/npm/types.d.ts +3 -4
- package/lib/download/npm/types.js +1 -0
- package/lib/download/npm/version.d.ts +4 -6
- package/lib/download/npm/version.js +23 -0
- package/lib/download/types/modified.d.ts +1 -2
- package/lib/download/types/modified.js +1 -0
- package/lib/download/types/sources.d.ts +2 -3
- package/lib/download/types/sources.js +1 -0
- package/lib/export/directory.d.ts +7 -15
- package/lib/export/directory.js +37 -0
- package/lib/export/helpers/custom-files.d.ts +2 -3
- package/lib/export/helpers/custom-files.js +23 -0
- package/lib/export/helpers/prepare.d.ts +3 -4
- package/lib/export/helpers/prepare.js +31 -0
- package/lib/export/helpers/types-version.d.ts +1 -2
- package/lib/export/helpers/types-version.js +19 -0
- package/lib/export/icon-package.d.ts +8 -15
- package/lib/export/icon-package.js +55 -0
- package/lib/export/json-package.d.ts +7 -14
- package/lib/export/json-package.js +129 -0
- package/lib/icon-set/index.d.ts +144 -147
- package/lib/icon-set/index.js +595 -0
- package/lib/icon-set/match.d.ts +3 -11
- package/lib/icon-set/match.js +45 -0
- package/lib/icon-set/merge.d.ts +2 -10
- package/lib/icon-set/merge.js +68 -0
- package/lib/icon-set/modified.d.ts +2 -10
- package/lib/icon-set/modified.js +20 -0
- package/lib/icon-set/props.d.ts +2 -5
- package/lib/icon-set/props.js +19 -0
- package/lib/icon-set/tags.d.ts +7 -15
- package/lib/icon-set/tags.js +53 -0
- package/lib/icon-set/types.d.ts +16 -21
- package/lib/icon-set/types.js +1 -0
- package/lib/import/directory.d.ts +11 -20
- package/lib/import/directory.js +101 -0
- package/lib/import/figma/index.d.ts +4 -15
- package/lib/import/figma/index.js +61 -0
- package/lib/import/figma/nodes.d.ts +4 -14
- package/lib/import/figma/nodes.js +80 -0
- package/lib/import/figma/query.d.ts +9 -19
- package/lib/import/figma/query.js +183 -0
- package/lib/import/figma/types/api.d.ts +26 -27
- package/lib/import/figma/types/api.js +1 -0
- package/lib/import/figma/types/nodes.d.ts +12 -21
- package/lib/import/figma/types/nodes.js +1 -0
- package/lib/import/figma/types/options.d.ts +23 -32
- package/lib/import/figma/types/options.js +1 -0
- package/lib/import/figma/types/result.d.ts +16 -24
- package/lib/import/figma/types/result.js +1 -0
- package/lib/index.d.ts +55 -80
- package/lib/index.js +56 -0
- package/lib/misc/bump-version.d.ts +1 -2
- package/lib/misc/bump-version.js +13 -0
- package/lib/misc/compare-dirs.d.ts +4 -5
- package/lib/misc/compare-dirs.js +65 -0
- package/lib/misc/exec.d.ts +4 -6
- package/lib/misc/exec.js +23 -0
- package/lib/misc/keyword.d.ts +1 -2
- package/lib/misc/keyword.js +12 -0
- package/lib/misc/scan.d.ts +2 -4
- package/lib/misc/scan.js +87 -0
- package/lib/misc/write-json.d.ts +1 -2
- package/lib/misc/write-json.js +10 -0
- package/lib/optimise/figma.d.ts +2 -7
- package/lib/optimise/figma.js +189 -0
- package/lib/optimise/flags.d.ts +2 -7
- package/lib/optimise/flags.js +231 -0
- package/lib/optimise/global-style.d.ts +2 -7
- package/lib/optimise/global-style.js +114 -0
- package/lib/optimise/mask.d.ts +9 -14
- package/lib/optimise/mask.js +83 -0
- package/lib/optimise/origin.d.ts +2 -7
- package/lib/optimise/origin.js +22 -0
- package/lib/optimise/scale.d.ts +2 -7
- package/lib/optimise/scale.js +24 -0
- package/lib/optimise/svgo.d.ts +10 -15
- package/lib/optimise/svgo.js +90 -0
- package/lib/optimise/unwrap.d.ts +2 -7
- package/lib/optimise/unwrap.js +25 -0
- package/lib/svg/analyse/error.d.ts +2 -7
- package/lib/svg/analyse/error.js +12 -0
- package/lib/svg/analyse/types.d.ts +31 -35
- package/lib/svg/analyse/types.js +1 -0
- package/lib/svg/analyse.d.ts +3 -10
- package/lib/svg/analyse.js +256 -0
- package/lib/svg/cleanup/attribs.d.ts +2 -7
- package/lib/svg/cleanup/attribs.js +37 -0
- package/lib/svg/cleanup/bad-tags.d.ts +3 -8
- package/lib/svg/cleanup/bad-tags.js +57 -0
- package/lib/svg/cleanup/inline-style.d.ts +2 -7
- package/lib/svg/cleanup/inline-style.js +80 -0
- package/lib/svg/cleanup/root-style.d.ts +4 -9
- package/lib/svg/cleanup/root-style.js +27 -0
- package/lib/svg/cleanup/root-svg.d.ts +2 -7
- package/lib/svg/cleanup/root-svg.js +73 -0
- package/lib/svg/cleanup/svgo-style.d.ts +2 -7
- package/lib/svg/cleanup/svgo-style.js +24 -0
- package/lib/svg/cleanup.d.ts +3 -8
- package/lib/svg/cleanup.js +20 -0
- package/lib/svg/data/attributes.d.ts +1 -2
- package/lib/svg/data/attributes.js +451 -0
- package/lib/svg/data/tags.d.ts +1 -2
- package/lib/svg/data/tags.js +182 -0
- package/lib/svg/index.d.ts +38 -47
- package/lib/svg/index.js +117 -0
- package/lib/svg/parse-style.d.ts +21 -28
- package/lib/svg/parse-style.js +199 -0
- package/lib/svg/parse.d.ts +8 -16
- package/lib/svg/parse.js +32 -0
- package/package.json +116 -222
- package/lib/colors/attribs.cjs +0 -33
- package/lib/colors/attribs.d.cts +0 -27
- package/lib/colors/attribs.d.mts +0 -27
- package/lib/colors/attribs.mjs +0 -26
- package/lib/colors/detect.cjs +0 -66
- package/lib/colors/detect.d.cts +0 -16
- package/lib/colors/detect.d.mts +0 -16
- package/lib/colors/detect.mjs +0 -64
- package/lib/colors/parse.cjs +0 -300
- package/lib/colors/parse.d.cts +0 -61
- package/lib/colors/parse.d.mts +0 -61
- package/lib/colors/parse.mjs +0 -297
- package/lib/colors/validate.cjs +0 -56
- package/lib/colors/validate.d.cts +0 -21
- package/lib/colors/validate.d.mts +0 -21
- package/lib/colors/validate.mjs +0 -54
- package/lib/css/parse.cjs +0 -24
- package/lib/css/parse.d.cts +0 -6
- package/lib/css/parse.d.mts +0 -6
- package/lib/css/parse.mjs +0 -22
- package/lib/css/parser/error.cjs +0 -23
- package/lib/css/parser/error.d.cts +0 -13
- package/lib/css/parser/error.d.mts +0 -13
- package/lib/css/parser/error.mjs +0 -21
- package/lib/css/parser/export.cjs +0 -37
- package/lib/css/parser/export.d.cts +0 -8
- package/lib/css/parser/export.d.mts +0 -8
- package/lib/css/parser/export.mjs +0 -35
- package/lib/css/parser/strings.cjs +0 -83
- package/lib/css/parser/strings.d.cts +0 -16
- package/lib/css/parser/strings.d.mts +0 -16
- package/lib/css/parser/strings.mjs +0 -80
- package/lib/css/parser/text.cjs +0 -114
- package/lib/css/parser/text.d.cts +0 -20
- package/lib/css/parser/text.d.mts +0 -20
- package/lib/css/parser/text.mjs +0 -109
- package/lib/css/parser/tokens.cjs +0 -206
- package/lib/css/parser/tokens.d.cts +0 -9
- package/lib/css/parser/tokens.d.mts +0 -9
- package/lib/css/parser/tokens.mjs +0 -204
- package/lib/css/parser/tree.cjs +0 -40
- package/lib/css/parser/tree.d.cts +0 -8
- package/lib/css/parser/tree.d.mts +0 -8
- package/lib/css/parser/tree.mjs +0 -38
- package/lib/css/parser/types.cjs +0 -2
- package/lib/css/parser/types.d.cts +0 -52
- package/lib/css/parser/types.d.mts +0 -52
- package/lib/css/parser/types.mjs +0 -1
- package/lib/download/api/cache.cjs +0 -91
- package/lib/download/api/cache.d.cts +0 -20
- package/lib/download/api/cache.d.mts +0 -20
- package/lib/download/api/cache.mjs +0 -86
- package/lib/download/api/config.cjs +0 -11
- package/lib/download/api/config.d.cts +0 -18
- package/lib/download/api/config.d.mts +0 -18
- package/lib/download/api/config.mjs +0 -8
- package/lib/download/api/download.cjs +0 -26
- package/lib/download/api/download.d.cts +0 -8
- package/lib/download/api/download.d.mts +0 -8
- package/lib/download/api/download.mjs +0 -24
- package/lib/download/api/fetch.cjs +0 -12
- package/lib/download/api/fetch.d.cts +0 -10
- package/lib/download/api/fetch.d.mts +0 -10
- package/lib/download/api/fetch.mjs +0 -9
- package/lib/download/api/index.cjs +0 -57
- package/lib/download/api/index.d.cts +0 -8
- package/lib/download/api/index.d.mts +0 -8
- package/lib/download/api/index.mjs +0 -55
- package/lib/download/api/queue.cjs +0 -104
- package/lib/download/api/queue.d.cts +0 -32
- package/lib/download/api/queue.d.mts +0 -32
- package/lib/download/api/queue.mjs +0 -101
- package/lib/download/api/types.cjs +0 -2
- package/lib/download/api/types.d.cts +0 -17
- package/lib/download/api/types.d.mts +0 -17
- package/lib/download/api/types.mjs +0 -1
- package/lib/download/git/branch.cjs +0 -19
- package/lib/download/git/branch.d.cts +0 -8
- package/lib/download/git/branch.d.mts +0 -8
- package/lib/download/git/branch.mjs +0 -17
- package/lib/download/git/hash.cjs +0 -14
- package/lib/download/git/hash.d.cts +0 -8
- package/lib/download/git/hash.d.mts +0 -8
- package/lib/download/git/hash.mjs +0 -12
- package/lib/download/git/index.cjs +0 -76
- package/lib/download/git/index.d.cts +0 -29
- package/lib/download/git/index.d.mts +0 -29
- package/lib/download/git/index.mjs +0 -74
- package/lib/download/git/reset.cjs +0 -36
- package/lib/download/git/reset.d.cts +0 -6
- package/lib/download/git/reset.d.mts +0 -6
- package/lib/download/git/reset.mjs +0 -34
- package/lib/download/github/hash.cjs +0 -31
- package/lib/download/github/hash.d.cts +0 -8
- package/lib/download/github/hash.d.mts +0 -8
- package/lib/download/github/hash.mjs +0 -29
- package/lib/download/github/index.cjs +0 -105
- package/lib/download/github/index.d.cts +0 -31
- package/lib/download/github/index.d.mts +0 -31
- package/lib/download/github/index.mjs +0 -103
- package/lib/download/github/types.cjs +0 -2
- package/lib/download/github/types.d.cts +0 -11
- package/lib/download/github/types.d.mts +0 -11
- package/lib/download/github/types.mjs +0 -1
- package/lib/download/gitlab/hash.cjs +0 -33
- package/lib/download/gitlab/hash.d.cts +0 -8
- package/lib/download/gitlab/hash.d.mts +0 -8
- package/lib/download/gitlab/hash.mjs +0 -31
- package/lib/download/gitlab/index.cjs +0 -105
- package/lib/download/gitlab/index.d.cts +0 -31
- package/lib/download/gitlab/index.d.mts +0 -31
- package/lib/download/gitlab/index.mjs +0 -103
- package/lib/download/gitlab/types.cjs +0 -5
- package/lib/download/gitlab/types.d.cts +0 -15
- package/lib/download/gitlab/types.d.mts +0 -15
- package/lib/download/gitlab/types.mjs +0 -3
- package/lib/download/helpers/untar.cjs +0 -12
- package/lib/download/helpers/untar.d.cts +0 -6
- package/lib/download/helpers/untar.d.mts +0 -6
- package/lib/download/helpers/untar.mjs +0 -10
- package/lib/download/helpers/unzip.cjs +0 -17
- package/lib/download/helpers/unzip.d.cts +0 -6
- package/lib/download/helpers/unzip.d.mts +0 -6
- package/lib/download/helpers/unzip.mjs +0 -11
- package/lib/download/index.cjs +0 -64
- package/lib/download/index.d.cts +0 -48
- package/lib/download/index.d.mts +0 -48
- package/lib/download/index.mjs +0 -62
- package/lib/download/npm/index.cjs +0 -85
- package/lib/download/npm/index.d.cts +0 -30
- package/lib/download/npm/index.d.mts +0 -30
- package/lib/download/npm/index.mjs +0 -83
- package/lib/download/npm/types.cjs +0 -2
- package/lib/download/npm/types.d.cts +0 -9
- package/lib/download/npm/types.d.mts +0 -9
- package/lib/download/npm/types.mjs +0 -1
- package/lib/download/npm/version.cjs +0 -29
- package/lib/download/npm/version.d.cts +0 -16
- package/lib/download/npm/version.d.mts +0 -16
- package/lib/download/npm/version.mjs +0 -26
- package/lib/download/types/modified.cjs +0 -2
- package/lib/download/types/modified.d.cts +0 -6
- package/lib/download/types/modified.d.mts +0 -6
- package/lib/download/types/modified.mjs +0 -1
- package/lib/download/types/sources.cjs +0 -2
- package/lib/download/types/sources.d.cts +0 -12
- package/lib/download/types/sources.d.mts +0 -12
- package/lib/download/types/sources.mjs +0 -1
- package/lib/export/directory.cjs +0 -43
- package/lib/export/directory.d.cts +0 -26
- package/lib/export/directory.d.mts +0 -26
- package/lib/export/directory.mjs +0 -41
- package/lib/export/helpers/custom-files.cjs +0 -26
- package/lib/export/helpers/custom-files.d.cts +0 -12
- package/lib/export/helpers/custom-files.d.mts +0 -12
- package/lib/export/helpers/custom-files.mjs +0 -24
- package/lib/export/helpers/prepare.cjs +0 -34
- package/lib/export/helpers/prepare.d.cts +0 -19
- package/lib/export/helpers/prepare.d.mts +0 -19
- package/lib/export/helpers/prepare.mjs +0 -31
- package/lib/export/helpers/types-version.cjs +0 -12
- package/lib/export/helpers/types-version.d.cts +0 -6
- package/lib/export/helpers/types-version.d.mts +0 -6
- package/lib/export/helpers/types-version.mjs +0 -10
- package/lib/export/icon-package.cjs +0 -56
- package/lib/export/icon-package.d.cts +0 -26
- package/lib/export/icon-package.d.mts +0 -26
- package/lib/export/icon-package.mjs +0 -54
- package/lib/export/json-package.cjs +0 -144
- package/lib/export/json-package.d.cts +0 -25
- package/lib/export/json-package.d.mts +0 -25
- package/lib/export/json-package.mjs +0 -142
- package/lib/icon-set/index.cjs +0 -720
- package/lib/icon-set/index.d.cts +0 -162
- package/lib/icon-set/index.d.mts +0 -162
- package/lib/icon-set/index.mjs +0 -716
- package/lib/icon-set/match.cjs +0 -56
- package/lib/icon-set/match.d.cts +0 -15
- package/lib/icon-set/match.d.mts +0 -15
- package/lib/icon-set/match.mjs +0 -54
- package/lib/icon-set/merge.cjs +0 -87
- package/lib/icon-set/merge.d.cts +0 -14
- package/lib/icon-set/merge.d.mts +0 -14
- package/lib/icon-set/merge.mjs +0 -85
- package/lib/icon-set/modified.cjs +0 -25
- package/lib/icon-set/modified.d.cts +0 -16
- package/lib/icon-set/modified.d.mts +0 -16
- package/lib/icon-set/modified.mjs +0 -23
- package/lib/icon-set/props.cjs +0 -16
- package/lib/icon-set/props.d.cts +0 -13
- package/lib/icon-set/props.d.mts +0 -13
- package/lib/icon-set/props.mjs +0 -13
- package/lib/icon-set/tags.cjs +0 -95
- package/lib/icon-set/tags.d.cts +0 -25
- package/lib/icon-set/tags.d.mts +0 -25
- package/lib/icon-set/tags.mjs +0 -91
- package/lib/icon-set/types.cjs +0 -2
- package/lib/icon-set/types.d.cts +0 -75
- package/lib/icon-set/types.d.mts +0 -75
- package/lib/icon-set/types.mjs +0 -1
- package/lib/import/directory.cjs +0 -169
- package/lib/import/directory.d.cts +0 -52
- package/lib/import/directory.d.mts +0 -52
- package/lib/import/directory.mjs +0 -166
- package/lib/import/figma/index.cjs +0 -115
- package/lib/import/figma/index.d.cts +0 -20
- package/lib/import/figma/index.d.mts +0 -20
- package/lib/import/figma/index.mjs +0 -113
- package/lib/import/figma/nodes.cjs +0 -90
- package/lib/import/figma/nodes.d.cts +0 -18
- package/lib/import/figma/nodes.d.mts +0 -18
- package/lib/import/figma/nodes.mjs +0 -88
- package/lib/import/figma/query.cjs +0 -260
- package/lib/import/figma/query.d.cts +0 -42
- package/lib/import/figma/query.d.mts +0 -42
- package/lib/import/figma/query.mjs +0 -256
- package/lib/import/figma/types/api.cjs +0 -2
- package/lib/import/figma/types/api.d.cts +0 -53
- package/lib/import/figma/types/api.d.mts +0 -53
- package/lib/import/figma/types/api.mjs +0 -1
- package/lib/import/figma/types/nodes.cjs +0 -2
- package/lib/import/figma/types/nodes.d.cts +0 -44
- package/lib/import/figma/types/nodes.d.mts +0 -44
- package/lib/import/figma/types/nodes.mjs +0 -1
- package/lib/import/figma/types/options.cjs +0 -2
- package/lib/import/figma/types/options.d.cts +0 -59
- package/lib/import/figma/types/options.d.mts +0 -59
- package/lib/import/figma/types/options.mjs +0 -1
- package/lib/import/figma/types/result.cjs +0 -2
- package/lib/import/figma/types/result.d.cts +0 -44
- package/lib/import/figma/types/result.d.mts +0 -44
- package/lib/import/figma/types/result.mjs +0 -1
- package/lib/index.cjs +0 -157
- package/lib/index.d.cts +0 -80
- package/lib/index.d.mts +0 -80
- package/lib/index.mjs +0 -91
- package/lib/misc/bump-version.cjs +0 -15
- package/lib/misc/bump-version.d.cts +0 -6
- package/lib/misc/bump-version.d.mts +0 -6
- package/lib/misc/bump-version.mjs +0 -13
- package/lib/misc/cheerio.cjs +0 -2
- package/lib/misc/cheerio.d.cts +0 -10
- package/lib/misc/cheerio.d.mts +0 -10
- package/lib/misc/cheerio.d.ts +0 -10
- package/lib/misc/cheerio.mjs +0 -1
- package/lib/misc/compare-dirs.cjs +0 -75
- package/lib/misc/compare-dirs.d.cts +0 -11
- package/lib/misc/compare-dirs.d.mts +0 -11
- package/lib/misc/compare-dirs.mjs +0 -73
- package/lib/misc/exec.cjs +0 -27
- package/lib/misc/exec.d.cts +0 -12
- package/lib/misc/exec.d.mts +0 -12
- package/lib/misc/exec.mjs +0 -25
- package/lib/misc/keyword.cjs +0 -20
- package/lib/misc/keyword.d.cts +0 -6
- package/lib/misc/keyword.d.mts +0 -6
- package/lib/misc/keyword.mjs +0 -18
- package/lib/misc/scan.cjs +0 -114
- package/lib/misc/scan.d.cts +0 -33
- package/lib/misc/scan.d.mts +0 -33
- package/lib/misc/scan.mjs +0 -111
- package/lib/misc/write-json.cjs +0 -9
- package/lib/misc/write-json.d.cts +0 -6
- package/lib/misc/write-json.d.mts +0 -6
- package/lib/misc/write-json.mjs +0 -7
- package/lib/optimise/figma.cjs +0 -232
- package/lib/optimise/figma.d.cts +0 -14
- package/lib/optimise/figma.d.mts +0 -14
- package/lib/optimise/figma.mjs +0 -230
- package/lib/optimise/flags.cjs +0 -256
- package/lib/optimise/flags.d.cts +0 -11
- package/lib/optimise/flags.d.mts +0 -11
- package/lib/optimise/flags.mjs +0 -254
- package/lib/optimise/global-style.cjs +0 -158
- package/lib/optimise/global-style.d.cts +0 -11
- package/lib/optimise/global-style.d.mts +0 -11
- package/lib/optimise/global-style.mjs +0 -156
- package/lib/optimise/mask.cjs +0 -110
- package/lib/optimise/mask.d.cts +0 -24
- package/lib/optimise/mask.d.mts +0 -24
- package/lib/optimise/mask.mjs +0 -108
- package/lib/optimise/origin.cjs +0 -23
- package/lib/optimise/origin.d.cts +0 -11
- package/lib/optimise/origin.d.mts +0 -11
- package/lib/optimise/origin.mjs +0 -21
- package/lib/optimise/scale.cjs +0 -27
- package/lib/optimise/scale.d.cts +0 -11
- package/lib/optimise/scale.d.mts +0 -11
- package/lib/optimise/scale.mjs +0 -25
- package/lib/optimise/svgo.cjs +0 -107
- package/lib/optimise/svgo.d.cts +0 -37
- package/lib/optimise/svgo.d.mts +0 -37
- package/lib/optimise/svgo.mjs +0 -104
- package/lib/optimise/unwrap.cjs +0 -31
- package/lib/optimise/unwrap.d.cts +0 -11
- package/lib/optimise/unwrap.d.mts +0 -11
- package/lib/optimise/unwrap.mjs +0 -29
- package/lib/svg/analyse/error.cjs +0 -16
- package/lib/svg/analyse/error.d.cts +0 -11
- package/lib/svg/analyse/error.d.mts +0 -11
- package/lib/svg/analyse/error.mjs +0 -14
- package/lib/svg/analyse/types.cjs +0 -2
- package/lib/svg/analyse/types.d.cts +0 -93
- package/lib/svg/analyse/types.d.mts +0 -93
- package/lib/svg/analyse/types.mjs +0 -1
- package/lib/svg/analyse.cjs +0 -303
- package/lib/svg/analyse.d.cts +0 -16
- package/lib/svg/analyse.d.mts +0 -16
- package/lib/svg/analyse.mjs +0 -301
- package/lib/svg/cleanup/attribs.cjs +0 -39
- package/lib/svg/cleanup/attribs.d.cts +0 -11
- package/lib/svg/cleanup/attribs.d.mts +0 -11
- package/lib/svg/cleanup/attribs.mjs +0 -37
- package/lib/svg/cleanup/bad-tags.cjs +0 -69
- package/lib/svg/cleanup/bad-tags.d.cts +0 -17
- package/lib/svg/cleanup/bad-tags.d.mts +0 -17
- package/lib/svg/cleanup/bad-tags.mjs +0 -67
- package/lib/svg/cleanup/inline-style.cjs +0 -97
- package/lib/svg/cleanup/inline-style.d.cts +0 -11
- package/lib/svg/cleanup/inline-style.d.mts +0 -11
- package/lib/svg/cleanup/inline-style.mjs +0 -95
- package/lib/svg/cleanup/root-style.cjs +0 -34
- package/lib/svg/cleanup/root-style.d.cts +0 -17
- package/lib/svg/cleanup/root-style.d.mts +0 -17
- package/lib/svg/cleanup/root-style.mjs +0 -32
- package/lib/svg/cleanup/root-svg.cjs +0 -84
- package/lib/svg/cleanup/root-svg.d.cts +0 -11
- package/lib/svg/cleanup/root-svg.d.mts +0 -11
- package/lib/svg/cleanup/root-svg.mjs +0 -82
- package/lib/svg/cleanup/svgo-style.cjs +0 -43
- package/lib/svg/cleanup/svgo-style.d.cts +0 -11
- package/lib/svg/cleanup/svgo-style.d.mts +0 -11
- package/lib/svg/cleanup/svgo-style.mjs +0 -41
- package/lib/svg/cleanup.cjs +0 -33
- package/lib/svg/cleanup.d.cts +0 -16
- package/lib/svg/cleanup.d.mts +0 -16
- package/lib/svg/cleanup.mjs +0 -31
- package/lib/svg/data/attributes.cjs +0 -373
- package/lib/svg/data/attributes.d.cts +0 -77
- package/lib/svg/data/attributes.d.mts +0 -77
- package/lib/svg/data/attributes.mjs +0 -346
- package/lib/svg/data/tags.cjs +0 -141
- package/lib/svg/data/tags.d.cts +0 -95
- package/lib/svg/data/tags.d.mts +0 -95
- package/lib/svg/data/tags.mjs +0 -117
- package/lib/svg/index.cjs +0 -178
- package/lib/svg/index.d.cts +0 -52
- package/lib/svg/index.d.mts +0 -52
- package/lib/svg/index.mjs +0 -162
- package/lib/svg/parse-style.cjs +0 -243
- package/lib/svg/parse-style.d.cts +0 -59
- package/lib/svg/parse-style.d.mts +0 -59
- package/lib/svg/parse-style.mjs +0 -241
- package/lib/svg/parse.cjs +0 -46
- package/lib/svg/parse.d.cts +0 -31
- package/lib/svg/parse.d.mts +0 -31
- package/lib/svg/parse.mjs +0 -44
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const fs = require('fs');
|
|
4
|
-
const crypto = require('crypto');
|
|
5
|
-
const misc_scan = require('../../misc/scan.cjs');
|
|
6
|
-
|
|
7
|
-
const cacheVersion = 1;
|
|
8
|
-
const storedFiles = /* @__PURE__ */ Object.create(null);
|
|
9
|
-
function apiCacheKey(query) {
|
|
10
|
-
const item = JSON.stringify({
|
|
11
|
-
uri: query.uri,
|
|
12
|
-
params: query.params?.toString(),
|
|
13
|
-
headers: query.headers
|
|
14
|
-
});
|
|
15
|
-
return crypto.createHash("md5").update(item).digest("hex");
|
|
16
|
-
}
|
|
17
|
-
async function storeAPICache(options, key, data) {
|
|
18
|
-
const expires = Date.now() + options.ttl * 1e3;
|
|
19
|
-
const filename = options.dir + "/" + key + "." + expires.toString() + ".json";
|
|
20
|
-
if (!storedFiles[options.dir]) {
|
|
21
|
-
await getStoredFiles(options.dir);
|
|
22
|
-
}
|
|
23
|
-
const content = {
|
|
24
|
-
version: cacheVersion,
|
|
25
|
-
expires,
|
|
26
|
-
data
|
|
27
|
-
};
|
|
28
|
-
await fs.promises.writeFile(filename, JSON.stringify(content, null, 4), "utf8");
|
|
29
|
-
storedFiles[options.dir][key] = {
|
|
30
|
-
filename,
|
|
31
|
-
expires
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
async function getAPICache(dir, key) {
|
|
35
|
-
if (!storedFiles[dir]) {
|
|
36
|
-
await getStoredFiles(dir);
|
|
37
|
-
}
|
|
38
|
-
const item = storedFiles[dir][key];
|
|
39
|
-
if (!item) {
|
|
40
|
-
return null;
|
|
41
|
-
}
|
|
42
|
-
const time = Date.now();
|
|
43
|
-
try {
|
|
44
|
-
const content = JSON.parse(
|
|
45
|
-
await fs.promises.readFile(item.filename, "utf8")
|
|
46
|
-
);
|
|
47
|
-
return content.version === cacheVersion && content.expires > time ? content.data : null;
|
|
48
|
-
} catch (err) {
|
|
49
|
-
return null;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
function clearAPICache(dir) {
|
|
53
|
-
return getStoredFiles(dir, true);
|
|
54
|
-
}
|
|
55
|
-
async function getStoredFiles(dir, clear = false) {
|
|
56
|
-
const storage = !clear && storedFiles[dir] || /* @__PURE__ */ Object.create(null);
|
|
57
|
-
const time = Date.now();
|
|
58
|
-
storedFiles[dir] = storage;
|
|
59
|
-
try {
|
|
60
|
-
await fs.promises.mkdir(dir, {
|
|
61
|
-
recursive: true
|
|
62
|
-
});
|
|
63
|
-
} catch (err) {
|
|
64
|
-
}
|
|
65
|
-
await misc_scan.scanDirectory(
|
|
66
|
-
dir,
|
|
67
|
-
async (ext, file, subdir, path) => {
|
|
68
|
-
if (ext !== ".json") {
|
|
69
|
-
return false;
|
|
70
|
-
}
|
|
71
|
-
const filename = path + subdir + file + ext;
|
|
72
|
-
const parts = file.split(".");
|
|
73
|
-
const expires = parseInt(parts.pop());
|
|
74
|
-
if (clear || expires < time || parts.length !== 1) {
|
|
75
|
-
await fs.promises.unlink(filename);
|
|
76
|
-
return false;
|
|
77
|
-
}
|
|
78
|
-
const cacheKey = parts[0];
|
|
79
|
-
storage[cacheKey] = {
|
|
80
|
-
filename,
|
|
81
|
-
expires
|
|
82
|
-
};
|
|
83
|
-
},
|
|
84
|
-
false
|
|
85
|
-
);
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
exports.apiCacheKey = apiCacheKey;
|
|
89
|
-
exports.clearAPICache = clearAPICache;
|
|
90
|
-
exports.getAPICache = getAPICache;
|
|
91
|
-
exports.storeAPICache = storeAPICache;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { APIQueryParams, APICacheOptions } from './types.cjs';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Unique key
|
|
5
|
-
*/
|
|
6
|
-
declare function apiCacheKey(query: APIQueryParams): string;
|
|
7
|
-
/**
|
|
8
|
-
* Store cache
|
|
9
|
-
*/
|
|
10
|
-
declare function storeAPICache(options: APICacheOptions, key: string, data: string): Promise<void>;
|
|
11
|
-
/**
|
|
12
|
-
* Get item from cache
|
|
13
|
-
*/
|
|
14
|
-
declare function getAPICache(dir: string, key: string): Promise<string | null>;
|
|
15
|
-
/**
|
|
16
|
-
* Clear cache
|
|
17
|
-
*/
|
|
18
|
-
declare function clearAPICache(dir: string): Promise<void>;
|
|
19
|
-
|
|
20
|
-
export { apiCacheKey, clearAPICache, getAPICache, storeAPICache };
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { APIQueryParams, APICacheOptions } from './types.mjs';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Unique key
|
|
5
|
-
*/
|
|
6
|
-
declare function apiCacheKey(query: APIQueryParams): string;
|
|
7
|
-
/**
|
|
8
|
-
* Store cache
|
|
9
|
-
*/
|
|
10
|
-
declare function storeAPICache(options: APICacheOptions, key: string, data: string): Promise<void>;
|
|
11
|
-
/**
|
|
12
|
-
* Get item from cache
|
|
13
|
-
*/
|
|
14
|
-
declare function getAPICache(dir: string, key: string): Promise<string | null>;
|
|
15
|
-
/**
|
|
16
|
-
* Clear cache
|
|
17
|
-
*/
|
|
18
|
-
declare function clearAPICache(dir: string): Promise<void>;
|
|
19
|
-
|
|
20
|
-
export { apiCacheKey, clearAPICache, getAPICache, storeAPICache };
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import { promises } from 'fs';
|
|
2
|
-
import { createHash } from 'crypto';
|
|
3
|
-
import { scanDirectory } from '../../misc/scan.mjs';
|
|
4
|
-
|
|
5
|
-
const cacheVersion = 1;
|
|
6
|
-
const storedFiles = /* @__PURE__ */ Object.create(null);
|
|
7
|
-
function apiCacheKey(query) {
|
|
8
|
-
const item = JSON.stringify({
|
|
9
|
-
uri: query.uri,
|
|
10
|
-
params: query.params?.toString(),
|
|
11
|
-
headers: query.headers
|
|
12
|
-
});
|
|
13
|
-
return createHash("md5").update(item).digest("hex");
|
|
14
|
-
}
|
|
15
|
-
async function storeAPICache(options, key, data) {
|
|
16
|
-
const expires = Date.now() + options.ttl * 1e3;
|
|
17
|
-
const filename = options.dir + "/" + key + "." + expires.toString() + ".json";
|
|
18
|
-
if (!storedFiles[options.dir]) {
|
|
19
|
-
await getStoredFiles(options.dir);
|
|
20
|
-
}
|
|
21
|
-
const content = {
|
|
22
|
-
version: cacheVersion,
|
|
23
|
-
expires,
|
|
24
|
-
data
|
|
25
|
-
};
|
|
26
|
-
await promises.writeFile(filename, JSON.stringify(content, null, 4), "utf8");
|
|
27
|
-
storedFiles[options.dir][key] = {
|
|
28
|
-
filename,
|
|
29
|
-
expires
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
async function getAPICache(dir, key) {
|
|
33
|
-
if (!storedFiles[dir]) {
|
|
34
|
-
await getStoredFiles(dir);
|
|
35
|
-
}
|
|
36
|
-
const item = storedFiles[dir][key];
|
|
37
|
-
if (!item) {
|
|
38
|
-
return null;
|
|
39
|
-
}
|
|
40
|
-
const time = Date.now();
|
|
41
|
-
try {
|
|
42
|
-
const content = JSON.parse(
|
|
43
|
-
await promises.readFile(item.filename, "utf8")
|
|
44
|
-
);
|
|
45
|
-
return content.version === cacheVersion && content.expires > time ? content.data : null;
|
|
46
|
-
} catch (err) {
|
|
47
|
-
return null;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
function clearAPICache(dir) {
|
|
51
|
-
return getStoredFiles(dir, true);
|
|
52
|
-
}
|
|
53
|
-
async function getStoredFiles(dir, clear = false) {
|
|
54
|
-
const storage = !clear && storedFiles[dir] || /* @__PURE__ */ Object.create(null);
|
|
55
|
-
const time = Date.now();
|
|
56
|
-
storedFiles[dir] = storage;
|
|
57
|
-
try {
|
|
58
|
-
await promises.mkdir(dir, {
|
|
59
|
-
recursive: true
|
|
60
|
-
});
|
|
61
|
-
} catch (err) {
|
|
62
|
-
}
|
|
63
|
-
await scanDirectory(
|
|
64
|
-
dir,
|
|
65
|
-
async (ext, file, subdir, path) => {
|
|
66
|
-
if (ext !== ".json") {
|
|
67
|
-
return false;
|
|
68
|
-
}
|
|
69
|
-
const filename = path + subdir + file + ext;
|
|
70
|
-
const parts = file.split(".");
|
|
71
|
-
const expires = parseInt(parts.pop());
|
|
72
|
-
if (clear || expires < time || parts.length !== 1) {
|
|
73
|
-
await promises.unlink(filename);
|
|
74
|
-
return false;
|
|
75
|
-
}
|
|
76
|
-
const cacheKey = parts[0];
|
|
77
|
-
storage[cacheKey] = {
|
|
78
|
-
filename,
|
|
79
|
-
expires
|
|
80
|
-
};
|
|
81
|
-
},
|
|
82
|
-
false
|
|
83
|
-
);
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
export { apiCacheKey, clearAPICache, getAPICache, storeAPICache };
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { RequestOptions } from 'node:http';
|
|
2
|
-
import { APIQueryParams } from './types.cjs';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Axios config, customisable
|
|
6
|
-
*/
|
|
7
|
-
declare const axiosConfig: Omit<RequestOptions, 'headers' | 'responseType' | 'url' | 'method' | 'data'>;
|
|
8
|
-
interface AxiosCallbacks {
|
|
9
|
-
onStart?: (url: string, params: APIQueryParams) => void;
|
|
10
|
-
onSuccess?: (url: string, params: APIQueryParams) => void;
|
|
11
|
-
onError?: (url: string, params: APIQueryParams, errorCode?: number) => void;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Customisable callbacks, used for logging
|
|
15
|
-
*/
|
|
16
|
-
declare const fetchCallbacks: AxiosCallbacks;
|
|
17
|
-
|
|
18
|
-
export { axiosConfig, fetchCallbacks };
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { RequestOptions } from 'node:http';
|
|
2
|
-
import { APIQueryParams } from './types.mjs';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Axios config, customisable
|
|
6
|
-
*/
|
|
7
|
-
declare const axiosConfig: Omit<RequestOptions, 'headers' | 'responseType' | 'url' | 'method' | 'data'>;
|
|
8
|
-
interface AxiosCallbacks {
|
|
9
|
-
onStart?: (url: string, params: APIQueryParams) => void;
|
|
10
|
-
onSuccess?: (url: string, params: APIQueryParams) => void;
|
|
11
|
-
onError?: (url: string, params: APIQueryParams, errorCode?: number) => void;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Customisable callbacks, used for logging
|
|
15
|
-
*/
|
|
16
|
-
declare const fetchCallbacks: AxiosCallbacks;
|
|
17
|
-
|
|
18
|
-
export { axiosConfig, fetchCallbacks };
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const promises = require('fs/promises');
|
|
4
|
-
const download_api_config = require('./config.cjs');
|
|
5
|
-
const download_api_fetch = require('./fetch.cjs');
|
|
6
|
-
|
|
7
|
-
async function downloadFile(query, target) {
|
|
8
|
-
const params = query.params ? query.params.toString() : "";
|
|
9
|
-
const url = query.uri + (params ? "?" + params : "");
|
|
10
|
-
const headers = query.headers;
|
|
11
|
-
download_api_config.fetchCallbacks.onStart?.(url, query);
|
|
12
|
-
const fetch = download_api_fetch.getFetch();
|
|
13
|
-
const response = await fetch(url, {
|
|
14
|
-
...download_api_config.axiosConfig,
|
|
15
|
-
headers
|
|
16
|
-
});
|
|
17
|
-
if (response.status !== 200) {
|
|
18
|
-
download_api_config.fetchCallbacks.onError?.(url, query, response.status);
|
|
19
|
-
throw new Error(`Error downloading ${url}: ${response.status}`);
|
|
20
|
-
}
|
|
21
|
-
const data = await response.arrayBuffer();
|
|
22
|
-
download_api_config.fetchCallbacks.onSuccess?.(url, query);
|
|
23
|
-
await promises.writeFile(target, Buffer.from(data));
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
exports.downloadFile = downloadFile;
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { writeFile } from 'fs/promises';
|
|
2
|
-
import { fetchCallbacks, axiosConfig } from './config.mjs';
|
|
3
|
-
import { getFetch } from './fetch.mjs';
|
|
4
|
-
|
|
5
|
-
async function downloadFile(query, target) {
|
|
6
|
-
const params = query.params ? query.params.toString() : "";
|
|
7
|
-
const url = query.uri + (params ? "?" + params : "");
|
|
8
|
-
const headers = query.headers;
|
|
9
|
-
fetchCallbacks.onStart?.(url, query);
|
|
10
|
-
const fetch = getFetch();
|
|
11
|
-
const response = await fetch(url, {
|
|
12
|
-
...axiosConfig,
|
|
13
|
-
headers
|
|
14
|
-
});
|
|
15
|
-
if (response.status !== 200) {
|
|
16
|
-
fetchCallbacks.onError?.(url, query, response.status);
|
|
17
|
-
throw new Error(`Error downloading ${url}: ${response.status}`);
|
|
18
|
-
}
|
|
19
|
-
const data = await response.arrayBuffer();
|
|
20
|
-
fetchCallbacks.onSuccess?.(url, query);
|
|
21
|
-
await writeFile(target, Buffer.from(data));
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export { downloadFile };
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const download_api_cache = require('./cache.cjs');
|
|
4
|
-
const download_api_config = require('./config.cjs');
|
|
5
|
-
const download_api_fetch = require('./fetch.cjs');
|
|
6
|
-
require('fs');
|
|
7
|
-
require('crypto');
|
|
8
|
-
require('../../misc/scan.cjs');
|
|
9
|
-
|
|
10
|
-
async function sendAPIQuery(query, cache) {
|
|
11
|
-
const cacheKey = cache ? download_api_cache.apiCacheKey(query) : "";
|
|
12
|
-
if (cache) {
|
|
13
|
-
const cached = await download_api_cache.getAPICache(cache.dir, cacheKey);
|
|
14
|
-
if (cached) {
|
|
15
|
-
return cached;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
const result = await sendQuery(query);
|
|
19
|
-
if (cache && typeof result !== "number") {
|
|
20
|
-
try {
|
|
21
|
-
await download_api_cache.storeAPICache(cache, cacheKey, result);
|
|
22
|
-
} catch (err) {
|
|
23
|
-
console.error("Error writing API cache");
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
return result;
|
|
27
|
-
}
|
|
28
|
-
async function sendQuery(query) {
|
|
29
|
-
const params = query.params ? query.params.toString() : "";
|
|
30
|
-
const url = query.uri + (params ? "?" + params : "");
|
|
31
|
-
const headers = query.headers;
|
|
32
|
-
download_api_config.fetchCallbacks.onStart?.(url, query);
|
|
33
|
-
function fail(value) {
|
|
34
|
-
download_api_config.fetchCallbacks.onError?.(url, query, value);
|
|
35
|
-
return value ?? 404;
|
|
36
|
-
}
|
|
37
|
-
const fetch = download_api_fetch.getFetch();
|
|
38
|
-
try {
|
|
39
|
-
const response = await fetch(url, {
|
|
40
|
-
...download_api_config.axiosConfig,
|
|
41
|
-
headers
|
|
42
|
-
});
|
|
43
|
-
if (response.status !== 200) {
|
|
44
|
-
return fail(response.status);
|
|
45
|
-
}
|
|
46
|
-
const data = await response.text();
|
|
47
|
-
if (typeof data !== "string") {
|
|
48
|
-
return fail();
|
|
49
|
-
}
|
|
50
|
-
download_api_config.fetchCallbacks.onSuccess?.(url, query);
|
|
51
|
-
return data;
|
|
52
|
-
} catch (err) {
|
|
53
|
-
return fail();
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
exports.sendAPIQuery = sendAPIQuery;
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { apiCacheKey, getAPICache, storeAPICache } from './cache.mjs';
|
|
2
|
-
import { fetchCallbacks, axiosConfig } from './config.mjs';
|
|
3
|
-
import { getFetch } from './fetch.mjs';
|
|
4
|
-
import 'fs';
|
|
5
|
-
import 'crypto';
|
|
6
|
-
import '../../misc/scan.mjs';
|
|
7
|
-
|
|
8
|
-
async function sendAPIQuery(query, cache) {
|
|
9
|
-
const cacheKey = cache ? apiCacheKey(query) : "";
|
|
10
|
-
if (cache) {
|
|
11
|
-
const cached = await getAPICache(cache.dir, cacheKey);
|
|
12
|
-
if (cached) {
|
|
13
|
-
return cached;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
const result = await sendQuery(query);
|
|
17
|
-
if (cache && typeof result !== "number") {
|
|
18
|
-
try {
|
|
19
|
-
await storeAPICache(cache, cacheKey, result);
|
|
20
|
-
} catch (err) {
|
|
21
|
-
console.error("Error writing API cache");
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
return result;
|
|
25
|
-
}
|
|
26
|
-
async function sendQuery(query) {
|
|
27
|
-
const params = query.params ? query.params.toString() : "";
|
|
28
|
-
const url = query.uri + (params ? "?" + params : "");
|
|
29
|
-
const headers = query.headers;
|
|
30
|
-
fetchCallbacks.onStart?.(url, query);
|
|
31
|
-
function fail(value) {
|
|
32
|
-
fetchCallbacks.onError?.(url, query, value);
|
|
33
|
-
return value ?? 404;
|
|
34
|
-
}
|
|
35
|
-
const fetch = getFetch();
|
|
36
|
-
try {
|
|
37
|
-
const response = await fetch(url, {
|
|
38
|
-
...axiosConfig,
|
|
39
|
-
headers
|
|
40
|
-
});
|
|
41
|
-
if (response.status !== 200) {
|
|
42
|
-
return fail(response.status);
|
|
43
|
-
}
|
|
44
|
-
const data = await response.text();
|
|
45
|
-
if (typeof data !== "string") {
|
|
46
|
-
return fail();
|
|
47
|
-
}
|
|
48
|
-
fetchCallbacks.onSuccess?.(url, query);
|
|
49
|
-
return data;
|
|
50
|
-
} catch (err) {
|
|
51
|
-
return fail();
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
export { sendAPIQuery };
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const defaultQueueParams = {
|
|
4
|
-
limit: 5,
|
|
5
|
-
retries: 3
|
|
6
|
-
};
|
|
7
|
-
function runConcurrentQueries(params) {
|
|
8
|
-
const allParams = {
|
|
9
|
-
...defaultQueueParams,
|
|
10
|
-
...params
|
|
11
|
-
};
|
|
12
|
-
const paramsWithCount = allParams;
|
|
13
|
-
const paramsWithPromises = allParams;
|
|
14
|
-
const isCallback = typeof paramsWithCount.total === "number";
|
|
15
|
-
const count = isCallback ? paramsWithCount.total : paramsWithPromises.promises.length;
|
|
16
|
-
const limit = Math.max(1, Math.min(allParams.limit || 1, count));
|
|
17
|
-
const retries = Math.max(1, allParams.retries || 1);
|
|
18
|
-
const results = Array(count).fill(void 0);
|
|
19
|
-
let nextIndex = 0;
|
|
20
|
-
const resolving = /* @__PURE__ */ new Set();
|
|
21
|
-
let rejected = false;
|
|
22
|
-
let resolved = false;
|
|
23
|
-
return new Promise((resolve, reject) => {
|
|
24
|
-
function resolvedItem() {
|
|
25
|
-
if (rejected || resolved) {
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
if (!resolving.size && nextIndex > count) {
|
|
29
|
-
resolved = true;
|
|
30
|
-
resolve(results);
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
if (resolving.size < limit && nextIndex <= count) {
|
|
34
|
-
startNext();
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
function fail(index, err) {
|
|
38
|
-
function done(failed) {
|
|
39
|
-
resolving.delete(index);
|
|
40
|
-
if (failed) {
|
|
41
|
-
rejected = true;
|
|
42
|
-
reject(err);
|
|
43
|
-
} else {
|
|
44
|
-
resolvedItem();
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
if (allParams.onError) {
|
|
48
|
-
let retry;
|
|
49
|
-
try {
|
|
50
|
-
retry = allParams.onError(index, err, params);
|
|
51
|
-
} catch (err2) {
|
|
52
|
-
err = err2;
|
|
53
|
-
done(true);
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
if (retry instanceof Promise) {
|
|
57
|
-
retry.then(() => {
|
|
58
|
-
done(false);
|
|
59
|
-
}).catch((err2) => {
|
|
60
|
-
err = err2;
|
|
61
|
-
done(true);
|
|
62
|
-
});
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
done(false);
|
|
66
|
-
} else {
|
|
67
|
-
done(true);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
function run(index, retry) {
|
|
71
|
-
resolving.add(index);
|
|
72
|
-
const p = isCallback ? paramsWithCount.callback(index) : paramsWithPromises.promises[index];
|
|
73
|
-
allParams.onStart?.(index, params);
|
|
74
|
-
p.then((value) => {
|
|
75
|
-
resolving.delete(index);
|
|
76
|
-
results[index] = value;
|
|
77
|
-
allParams.onSuccess?.(index, params, value);
|
|
78
|
-
resolvedItem();
|
|
79
|
-
}).catch((err) => {
|
|
80
|
-
if (retry < retries) {
|
|
81
|
-
setTimeout(() => {
|
|
82
|
-
run(index, retry + 1);
|
|
83
|
-
});
|
|
84
|
-
} else if (!rejected) {
|
|
85
|
-
fail(index, err);
|
|
86
|
-
}
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
function startNext() {
|
|
90
|
-
const index = nextIndex++;
|
|
91
|
-
if (index >= count) {
|
|
92
|
-
resolvedItem();
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
run(index, 0);
|
|
96
|
-
}
|
|
97
|
-
for (let i = 0; i < limit; i++) {
|
|
98
|
-
startNext();
|
|
99
|
-
}
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
exports.defaultQueueParams = defaultQueueParams;
|
|
104
|
-
exports.runConcurrentQueries = runConcurrentQueries;
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Default parameters
|
|
3
|
-
*/
|
|
4
|
-
declare const defaultQueueParams: ConcurrentQueriesCommonParams<unknown>;
|
|
5
|
-
/**
|
|
6
|
-
* Callback to get query
|
|
7
|
-
*/
|
|
8
|
-
type GetConcurrentQueryCallback<T> = (index: number) => Promise<T>;
|
|
9
|
-
/**
|
|
10
|
-
* Parameters
|
|
11
|
-
*/
|
|
12
|
-
interface ConcurrentQueriesCommonParams<T> {
|
|
13
|
-
limit?: number;
|
|
14
|
-
retries?: number;
|
|
15
|
-
onError?: (index: number, error: unknown, params: ConcurrentQueriesParams<T>) => void | Promise<void>;
|
|
16
|
-
onSuccess?: (index: number, params: ConcurrentQueriesParams<T>, result: T) => void;
|
|
17
|
-
onStart?: (index: number, params: ConcurrentQueriesParams<T>) => void;
|
|
18
|
-
}
|
|
19
|
-
interface ConcurrentQueriesParamsWithCount<T> extends ConcurrentQueriesCommonParams<T> {
|
|
20
|
-
total: number;
|
|
21
|
-
callback: (index: number) => Promise<T>;
|
|
22
|
-
}
|
|
23
|
-
interface ConcurrentQueriesParamsWithPromises<T> extends ConcurrentQueriesCommonParams<T> {
|
|
24
|
-
promises: Promise<T>[];
|
|
25
|
-
}
|
|
26
|
-
type ConcurrentQueriesParams<T> = ConcurrentQueriesParamsWithCount<T> | ConcurrentQueriesParamsWithPromises<T>;
|
|
27
|
-
/**
|
|
28
|
-
* Runs concurrent async operations
|
|
29
|
-
*/
|
|
30
|
-
declare function runConcurrentQueries<T>(params: ConcurrentQueriesParams<T>): Promise<T[]>;
|
|
31
|
-
|
|
32
|
-
export { type ConcurrentQueriesCommonParams, type ConcurrentQueriesParams, type ConcurrentQueriesParamsWithCount, type ConcurrentQueriesParamsWithPromises, type GetConcurrentQueryCallback, defaultQueueParams, runConcurrentQueries };
|