@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,105 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const fs = require('fs');
|
|
4
|
-
const export_helpers_prepare = require('../../export/helpers/prepare.cjs');
|
|
5
|
-
const download_github_hash = require('./hash.cjs');
|
|
6
|
-
const download_api_download = require('../api/download.cjs');
|
|
7
|
-
const download_helpers_unzip = require('../helpers/unzip.cjs');
|
|
8
|
-
require('pathe');
|
|
9
|
-
require('../api/index.cjs');
|
|
10
|
-
require('../api/cache.cjs');
|
|
11
|
-
require('crypto');
|
|
12
|
-
require('../../misc/scan.cjs');
|
|
13
|
-
require('../api/config.cjs');
|
|
14
|
-
require('../api/fetch.cjs');
|
|
15
|
-
require('fs/promises');
|
|
16
|
-
require('extract-zip');
|
|
17
|
-
|
|
18
|
-
async function findMatchingDirs(rootDir, hash) {
|
|
19
|
-
const matches = [];
|
|
20
|
-
const files = await fs.promises.readdir(rootDir);
|
|
21
|
-
for (let i = 0; i < files.length; i++) {
|
|
22
|
-
const file = files[i];
|
|
23
|
-
const lastChunk = file.split("-").pop();
|
|
24
|
-
if (lastChunk.length < 4 || lastChunk !== hash.slice(0, lastChunk.length)) {
|
|
25
|
-
continue;
|
|
26
|
-
}
|
|
27
|
-
const stat = await fs.promises.stat(rootDir + "/" + file);
|
|
28
|
-
if (stat.isDirectory()) {
|
|
29
|
-
matches.push(file);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
return matches;
|
|
33
|
-
}
|
|
34
|
-
async function downloadGitHubRepo(options) {
|
|
35
|
-
const hash = await download_github_hash.getGitHubRepoHash(options);
|
|
36
|
-
const ifModifiedSince = options.ifModifiedSince;
|
|
37
|
-
if (ifModifiedSince) {
|
|
38
|
-
const expectedHash = typeof ifModifiedSince === "string" ? ifModifiedSince : ifModifiedSince.downloadType === "github" ? ifModifiedSince.hash : null;
|
|
39
|
-
if (hash === expectedHash) {
|
|
40
|
-
return "not_modified";
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
options.target = options.target.replace("{hash}", hash);
|
|
44
|
-
const rootDir = options.target = await export_helpers_prepare.prepareDirectoryForExport(options);
|
|
45
|
-
const archiveTarget = rootDir + "/" + hash + ".zip";
|
|
46
|
-
let exists = false;
|
|
47
|
-
try {
|
|
48
|
-
const stat = await fs.promises.stat(archiveTarget);
|
|
49
|
-
exists = stat.isFile();
|
|
50
|
-
} catch (err) {
|
|
51
|
-
}
|
|
52
|
-
if (!exists) {
|
|
53
|
-
const uri = `https://api.github.com/repos/${options.user}/${options.repo}/zipball/${hash}`;
|
|
54
|
-
await download_api_download.downloadFile(
|
|
55
|
-
{
|
|
56
|
-
uri,
|
|
57
|
-
headers: {
|
|
58
|
-
Accept: "application/vnd.github.v3+json",
|
|
59
|
-
Authorization: "token " + options.token
|
|
60
|
-
}
|
|
61
|
-
},
|
|
62
|
-
archiveTarget
|
|
63
|
-
);
|
|
64
|
-
}
|
|
65
|
-
const files = await fs.promises.readdir(rootDir);
|
|
66
|
-
const hashSearch = "-" + hash;
|
|
67
|
-
for (let i = 0; i < files.length; i++) {
|
|
68
|
-
const file = files[i];
|
|
69
|
-
if (file === hash + ".zip") {
|
|
70
|
-
continue;
|
|
71
|
-
}
|
|
72
|
-
const filename = rootDir + "/" + files[i];
|
|
73
|
-
const stat = await fs.promises.lstat(filename);
|
|
74
|
-
const isDir = stat.isDirectory();
|
|
75
|
-
if (
|
|
76
|
-
// Remove symbolic links
|
|
77
|
-
stat.isSymbolicLink() || // Remove if directory matches hash to avoid errors extracting zip
|
|
78
|
-
isDir && filename.slice(0 - hashSearch.length) === hashSearch || // Remove if directory and cleanupOldDirectories is not disabled
|
|
79
|
-
isDir && options.cleanupOldDirectories !== false || // Remove if file and cleanupOldFiles is enabled
|
|
80
|
-
!isDir && options.cleanupOldFiles
|
|
81
|
-
) {
|
|
82
|
-
try {
|
|
83
|
-
await fs.promises.rm(filename, {
|
|
84
|
-
force: true,
|
|
85
|
-
recursive: true
|
|
86
|
-
});
|
|
87
|
-
} catch (err) {
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
await download_helpers_unzip.unzip(archiveTarget, rootDir);
|
|
92
|
-
const matchingDirs = await findMatchingDirs(rootDir, hash);
|
|
93
|
-
if (matchingDirs.length !== 1) {
|
|
94
|
-
throw new Error(`Error unpacking ${hash}.zip`);
|
|
95
|
-
}
|
|
96
|
-
const contentsDir = rootDir + "/" + matchingDirs[0];
|
|
97
|
-
return {
|
|
98
|
-
downloadType: "github",
|
|
99
|
-
rootDir,
|
|
100
|
-
contentsDir,
|
|
101
|
-
hash
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
exports.downloadGitHubRepo = downloadGitHubRepo;
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { ExportTargetOptions } from '../../export/helpers/prepare.cjs';
|
|
2
|
-
import { DocumentNotModified } from '../types/modified.cjs';
|
|
3
|
-
import { GitHubAPIOptions } from './types.cjs';
|
|
4
|
-
import { DownloadSourceMixin } from '../types/sources.cjs';
|
|
5
|
-
|
|
6
|
-
interface IfModifiedSinceOption {
|
|
7
|
-
ifModifiedSince: string | DownloadGitHubRepoResult;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Options for downloadGitHubRepo()
|
|
11
|
-
*/
|
|
12
|
-
interface DownloadGitHubRepoOptions extends ExportTargetOptions, GitHubAPIOptions, Partial<IfModifiedSinceOption> {
|
|
13
|
-
cleanupOldFiles?: boolean;
|
|
14
|
-
cleanupOldDirectories?: boolean;
|
|
15
|
-
log?: boolean;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Result
|
|
19
|
-
*/
|
|
20
|
-
interface DownloadGitHubRepoResult extends DownloadSourceMixin<'github'> {
|
|
21
|
-
rootDir: string;
|
|
22
|
-
contentsDir: string;
|
|
23
|
-
hash: string;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Download GitHub repo using API
|
|
27
|
-
*/
|
|
28
|
-
declare function downloadGitHubRepo<T extends IfModifiedSinceOption & DownloadGitHubRepoOptions>(options: T): Promise<DownloadGitHubRepoResult | DocumentNotModified>;
|
|
29
|
-
declare function downloadGitHubRepo(options: DownloadGitHubRepoOptions): Promise<DownloadGitHubRepoResult>;
|
|
30
|
-
|
|
31
|
-
export { type DownloadGitHubRepoOptions, type DownloadGitHubRepoResult, downloadGitHubRepo };
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { ExportTargetOptions } from '../../export/helpers/prepare.mjs';
|
|
2
|
-
import { DocumentNotModified } from '../types/modified.mjs';
|
|
3
|
-
import { GitHubAPIOptions } from './types.mjs';
|
|
4
|
-
import { DownloadSourceMixin } from '../types/sources.mjs';
|
|
5
|
-
|
|
6
|
-
interface IfModifiedSinceOption {
|
|
7
|
-
ifModifiedSince: string | DownloadGitHubRepoResult;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Options for downloadGitHubRepo()
|
|
11
|
-
*/
|
|
12
|
-
interface DownloadGitHubRepoOptions extends ExportTargetOptions, GitHubAPIOptions, Partial<IfModifiedSinceOption> {
|
|
13
|
-
cleanupOldFiles?: boolean;
|
|
14
|
-
cleanupOldDirectories?: boolean;
|
|
15
|
-
log?: boolean;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Result
|
|
19
|
-
*/
|
|
20
|
-
interface DownloadGitHubRepoResult extends DownloadSourceMixin<'github'> {
|
|
21
|
-
rootDir: string;
|
|
22
|
-
contentsDir: string;
|
|
23
|
-
hash: string;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Download GitHub repo using API
|
|
27
|
-
*/
|
|
28
|
-
declare function downloadGitHubRepo<T extends IfModifiedSinceOption & DownloadGitHubRepoOptions>(options: T): Promise<DownloadGitHubRepoResult | DocumentNotModified>;
|
|
29
|
-
declare function downloadGitHubRepo(options: DownloadGitHubRepoOptions): Promise<DownloadGitHubRepoResult>;
|
|
30
|
-
|
|
31
|
-
export { type DownloadGitHubRepoOptions, type DownloadGitHubRepoResult, downloadGitHubRepo };
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import { promises } from 'fs';
|
|
2
|
-
import { prepareDirectoryForExport } from '../../export/helpers/prepare.mjs';
|
|
3
|
-
import { getGitHubRepoHash } from './hash.mjs';
|
|
4
|
-
import { downloadFile } from '../api/download.mjs';
|
|
5
|
-
import { unzip } from '../helpers/unzip.mjs';
|
|
6
|
-
import 'pathe';
|
|
7
|
-
import '../api/index.mjs';
|
|
8
|
-
import '../api/cache.mjs';
|
|
9
|
-
import 'crypto';
|
|
10
|
-
import '../../misc/scan.mjs';
|
|
11
|
-
import '../api/config.mjs';
|
|
12
|
-
import '../api/fetch.mjs';
|
|
13
|
-
import 'fs/promises';
|
|
14
|
-
import 'extract-zip';
|
|
15
|
-
|
|
16
|
-
async function findMatchingDirs(rootDir, hash) {
|
|
17
|
-
const matches = [];
|
|
18
|
-
const files = await promises.readdir(rootDir);
|
|
19
|
-
for (let i = 0; i < files.length; i++) {
|
|
20
|
-
const file = files[i];
|
|
21
|
-
const lastChunk = file.split("-").pop();
|
|
22
|
-
if (lastChunk.length < 4 || lastChunk !== hash.slice(0, lastChunk.length)) {
|
|
23
|
-
continue;
|
|
24
|
-
}
|
|
25
|
-
const stat = await promises.stat(rootDir + "/" + file);
|
|
26
|
-
if (stat.isDirectory()) {
|
|
27
|
-
matches.push(file);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
return matches;
|
|
31
|
-
}
|
|
32
|
-
async function downloadGitHubRepo(options) {
|
|
33
|
-
const hash = await getGitHubRepoHash(options);
|
|
34
|
-
const ifModifiedSince = options.ifModifiedSince;
|
|
35
|
-
if (ifModifiedSince) {
|
|
36
|
-
const expectedHash = typeof ifModifiedSince === "string" ? ifModifiedSince : ifModifiedSince.downloadType === "github" ? ifModifiedSince.hash : null;
|
|
37
|
-
if (hash === expectedHash) {
|
|
38
|
-
return "not_modified";
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
options.target = options.target.replace("{hash}", hash);
|
|
42
|
-
const rootDir = options.target = await prepareDirectoryForExport(options);
|
|
43
|
-
const archiveTarget = rootDir + "/" + hash + ".zip";
|
|
44
|
-
let exists = false;
|
|
45
|
-
try {
|
|
46
|
-
const stat = await promises.stat(archiveTarget);
|
|
47
|
-
exists = stat.isFile();
|
|
48
|
-
} catch (err) {
|
|
49
|
-
}
|
|
50
|
-
if (!exists) {
|
|
51
|
-
const uri = `https://api.github.com/repos/${options.user}/${options.repo}/zipball/${hash}`;
|
|
52
|
-
await downloadFile(
|
|
53
|
-
{
|
|
54
|
-
uri,
|
|
55
|
-
headers: {
|
|
56
|
-
Accept: "application/vnd.github.v3+json",
|
|
57
|
-
Authorization: "token " + options.token
|
|
58
|
-
}
|
|
59
|
-
},
|
|
60
|
-
archiveTarget
|
|
61
|
-
);
|
|
62
|
-
}
|
|
63
|
-
const files = await promises.readdir(rootDir);
|
|
64
|
-
const hashSearch = "-" + hash;
|
|
65
|
-
for (let i = 0; i < files.length; i++) {
|
|
66
|
-
const file = files[i];
|
|
67
|
-
if (file === hash + ".zip") {
|
|
68
|
-
continue;
|
|
69
|
-
}
|
|
70
|
-
const filename = rootDir + "/" + files[i];
|
|
71
|
-
const stat = await promises.lstat(filename);
|
|
72
|
-
const isDir = stat.isDirectory();
|
|
73
|
-
if (
|
|
74
|
-
// Remove symbolic links
|
|
75
|
-
stat.isSymbolicLink() || // Remove if directory matches hash to avoid errors extracting zip
|
|
76
|
-
isDir && filename.slice(0 - hashSearch.length) === hashSearch || // Remove if directory and cleanupOldDirectories is not disabled
|
|
77
|
-
isDir && options.cleanupOldDirectories !== false || // Remove if file and cleanupOldFiles is enabled
|
|
78
|
-
!isDir && options.cleanupOldFiles
|
|
79
|
-
) {
|
|
80
|
-
try {
|
|
81
|
-
await promises.rm(filename, {
|
|
82
|
-
force: true,
|
|
83
|
-
recursive: true
|
|
84
|
-
});
|
|
85
|
-
} catch (err) {
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
await unzip(archiveTarget, rootDir);
|
|
90
|
-
const matchingDirs = await findMatchingDirs(rootDir, hash);
|
|
91
|
-
if (matchingDirs.length !== 1) {
|
|
92
|
-
throw new Error(`Error unpacking ${hash}.zip`);
|
|
93
|
-
}
|
|
94
|
-
const contentsDir = rootDir + "/" + matchingDirs[0];
|
|
95
|
-
return {
|
|
96
|
-
downloadType: "github",
|
|
97
|
-
rootDir,
|
|
98
|
-
contentsDir,
|
|
99
|
-
hash
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
export { downloadGitHubRepo };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const download_api_index = require('../api/index.cjs');
|
|
4
|
-
const download_gitlab_types = require('./types.cjs');
|
|
5
|
-
require('../api/cache.cjs');
|
|
6
|
-
require('fs');
|
|
7
|
-
require('crypto');
|
|
8
|
-
require('../../misc/scan.cjs');
|
|
9
|
-
require('../api/config.cjs');
|
|
10
|
-
require('../api/fetch.cjs');
|
|
11
|
-
|
|
12
|
-
async function getGitLabRepoHash(options) {
|
|
13
|
-
const uri = `${options.uri || download_gitlab_types.defaultGitLabBaseURI}/${options.project}/repository/branches/${options.branch}/`;
|
|
14
|
-
const data = await download_api_index.sendAPIQuery({
|
|
15
|
-
uri,
|
|
16
|
-
headers: {
|
|
17
|
-
Authorization: "token " + options.token
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
if (typeof data !== "string") {
|
|
21
|
-
throw new Error(`Error downloading data from GitLab API: ${data}`);
|
|
22
|
-
}
|
|
23
|
-
const content = JSON.parse(data);
|
|
24
|
-
const item = (content instanceof Array ? content : [content]).find(
|
|
25
|
-
(item2) => item2.name === options.branch && typeof item2.commit.id === "string"
|
|
26
|
-
);
|
|
27
|
-
if (!item) {
|
|
28
|
-
throw new Error("Error parsing GitLab API response");
|
|
29
|
-
}
|
|
30
|
-
return item.commit.id;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
exports.getGitLabRepoHash = getGitLabRepoHash;
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { sendAPIQuery } from '../api/index.mjs';
|
|
2
|
-
import { defaultGitLabBaseURI } from './types.mjs';
|
|
3
|
-
import '../api/cache.mjs';
|
|
4
|
-
import 'fs';
|
|
5
|
-
import 'crypto';
|
|
6
|
-
import '../../misc/scan.mjs';
|
|
7
|
-
import '../api/config.mjs';
|
|
8
|
-
import '../api/fetch.mjs';
|
|
9
|
-
|
|
10
|
-
async function getGitLabRepoHash(options) {
|
|
11
|
-
const uri = `${options.uri || defaultGitLabBaseURI}/${options.project}/repository/branches/${options.branch}/`;
|
|
12
|
-
const data = await sendAPIQuery({
|
|
13
|
-
uri,
|
|
14
|
-
headers: {
|
|
15
|
-
Authorization: "token " + options.token
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
if (typeof data !== "string") {
|
|
19
|
-
throw new Error(`Error downloading data from GitLab API: ${data}`);
|
|
20
|
-
}
|
|
21
|
-
const content = JSON.parse(data);
|
|
22
|
-
const item = (content instanceof Array ? content : [content]).find(
|
|
23
|
-
(item2) => item2.name === options.branch && typeof item2.commit.id === "string"
|
|
24
|
-
);
|
|
25
|
-
if (!item) {
|
|
26
|
-
throw new Error("Error parsing GitLab API response");
|
|
27
|
-
}
|
|
28
|
-
return item.commit.id;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export { getGitLabRepoHash };
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const fs = require('fs');
|
|
4
|
-
const export_helpers_prepare = require('../../export/helpers/prepare.cjs');
|
|
5
|
-
const download_gitlab_hash = require('./hash.cjs');
|
|
6
|
-
const download_gitlab_types = require('./types.cjs');
|
|
7
|
-
const download_api_download = require('../api/download.cjs');
|
|
8
|
-
const download_helpers_unzip = require('../helpers/unzip.cjs');
|
|
9
|
-
require('pathe');
|
|
10
|
-
require('../api/index.cjs');
|
|
11
|
-
require('../api/cache.cjs');
|
|
12
|
-
require('crypto');
|
|
13
|
-
require('../../misc/scan.cjs');
|
|
14
|
-
require('../api/config.cjs');
|
|
15
|
-
require('../api/fetch.cjs');
|
|
16
|
-
require('fs/promises');
|
|
17
|
-
require('extract-zip');
|
|
18
|
-
|
|
19
|
-
async function findMatchingDirs(rootDir, hash) {
|
|
20
|
-
const matches = [];
|
|
21
|
-
const files = await fs.promises.readdir(rootDir);
|
|
22
|
-
for (let i = 0; i < files.length; i++) {
|
|
23
|
-
const file = files[i];
|
|
24
|
-
const lastChunk = file.split("-").pop();
|
|
25
|
-
if (lastChunk.length < 4 || lastChunk !== hash.slice(0, lastChunk.length)) {
|
|
26
|
-
continue;
|
|
27
|
-
}
|
|
28
|
-
const stat = await fs.promises.stat(rootDir + "/" + file);
|
|
29
|
-
if (stat.isDirectory()) {
|
|
30
|
-
matches.push(file);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
return matches;
|
|
34
|
-
}
|
|
35
|
-
async function downloadGitLabRepo(options) {
|
|
36
|
-
const hash = await download_gitlab_hash.getGitLabRepoHash(options);
|
|
37
|
-
const ifModifiedSince = options.ifModifiedSince;
|
|
38
|
-
if (ifModifiedSince) {
|
|
39
|
-
const expectedHash = typeof ifModifiedSince === "string" ? ifModifiedSince : ifModifiedSince.downloadType === "gitlab" ? ifModifiedSince.hash : null;
|
|
40
|
-
if (hash === expectedHash) {
|
|
41
|
-
return "not_modified";
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
options.target = options.target.replace("{hash}", hash);
|
|
45
|
-
const rootDir = options.target = await export_helpers_prepare.prepareDirectoryForExport(options);
|
|
46
|
-
const archiveTarget = rootDir + "/" + hash + ".zip";
|
|
47
|
-
let exists = false;
|
|
48
|
-
try {
|
|
49
|
-
const stat = await fs.promises.stat(archiveTarget);
|
|
50
|
-
exists = stat.isFile();
|
|
51
|
-
} catch (err) {
|
|
52
|
-
}
|
|
53
|
-
if (!exists) {
|
|
54
|
-
const uri = `${options.uri || download_gitlab_types.defaultGitLabBaseURI}/${options.project}/repository/archive.zip?sha=${hash}`;
|
|
55
|
-
await download_api_download.downloadFile(
|
|
56
|
-
{
|
|
57
|
-
uri,
|
|
58
|
-
headers: {
|
|
59
|
-
Authorization: "token " + options.token
|
|
60
|
-
}
|
|
61
|
-
},
|
|
62
|
-
archiveTarget
|
|
63
|
-
);
|
|
64
|
-
}
|
|
65
|
-
const files = await fs.promises.readdir(rootDir);
|
|
66
|
-
const hashSearch = "-" + hash;
|
|
67
|
-
for (let i = 0; i < files.length; i++) {
|
|
68
|
-
const file = files[i];
|
|
69
|
-
if (file === hash + ".zip") {
|
|
70
|
-
continue;
|
|
71
|
-
}
|
|
72
|
-
const filename = rootDir + "/" + files[i];
|
|
73
|
-
const stat = await fs.promises.lstat(filename);
|
|
74
|
-
const isDir = stat.isDirectory();
|
|
75
|
-
if (
|
|
76
|
-
// Remove symbolic links
|
|
77
|
-
stat.isSymbolicLink() || // Remove if directory matches hash to avoid errors extracting zip
|
|
78
|
-
isDir && filename.slice(0 - hashSearch.length) === hashSearch || // Remove if directory and cleanupOldDirectories is not disabled
|
|
79
|
-
isDir && options.cleanupOldDirectories !== false || // Remove if file and cleanupOldFiles is enabled
|
|
80
|
-
!isDir && options.cleanupOldFiles
|
|
81
|
-
) {
|
|
82
|
-
try {
|
|
83
|
-
await fs.promises.rm(filename, {
|
|
84
|
-
force: true,
|
|
85
|
-
recursive: true
|
|
86
|
-
});
|
|
87
|
-
} catch (err) {
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
await download_helpers_unzip.unzip(archiveTarget, rootDir);
|
|
92
|
-
const matchingDirs = await findMatchingDirs(rootDir, hash);
|
|
93
|
-
if (matchingDirs.length !== 1) {
|
|
94
|
-
throw new Error(`Error unpacking ${hash}.zip`);
|
|
95
|
-
}
|
|
96
|
-
const contentsDir = rootDir + "/" + matchingDirs[0];
|
|
97
|
-
return {
|
|
98
|
-
downloadType: "gitlab",
|
|
99
|
-
rootDir,
|
|
100
|
-
contentsDir,
|
|
101
|
-
hash
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
exports.downloadGitLabRepo = downloadGitLabRepo;
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { ExportTargetOptions } from '../../export/helpers/prepare.cjs';
|
|
2
|
-
import { DocumentNotModified } from '../types/modified.cjs';
|
|
3
|
-
import { GitLabAPIOptions } from './types.cjs';
|
|
4
|
-
import { DownloadSourceMixin } from '../types/sources.cjs';
|
|
5
|
-
|
|
6
|
-
interface IfModifiedSinceOption {
|
|
7
|
-
ifModifiedSince: string | DownloadGitLabRepoResult;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Options for downloadGitLabRepo()
|
|
11
|
-
*/
|
|
12
|
-
interface DownloadGitLabRepoOptions extends ExportTargetOptions, GitLabAPIOptions, Partial<IfModifiedSinceOption> {
|
|
13
|
-
cleanupOldFiles?: boolean;
|
|
14
|
-
cleanupOldDirectories?: boolean;
|
|
15
|
-
log?: boolean;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Result
|
|
19
|
-
*/
|
|
20
|
-
interface DownloadGitLabRepoResult extends DownloadSourceMixin<'gitlab'> {
|
|
21
|
-
rootDir: string;
|
|
22
|
-
contentsDir: string;
|
|
23
|
-
hash: string;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Download GitLab repo using API
|
|
27
|
-
*/
|
|
28
|
-
declare function downloadGitLabRepo<T extends IfModifiedSinceOption & DownloadGitLabRepoOptions>(options: T): Promise<DownloadGitLabRepoResult | DocumentNotModified>;
|
|
29
|
-
declare function downloadGitLabRepo(options: DownloadGitLabRepoOptions): Promise<DownloadGitLabRepoResult>;
|
|
30
|
-
|
|
31
|
-
export { type DownloadGitLabRepoOptions, type DownloadGitLabRepoResult, downloadGitLabRepo };
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { ExportTargetOptions } from '../../export/helpers/prepare.mjs';
|
|
2
|
-
import { DocumentNotModified } from '../types/modified.mjs';
|
|
3
|
-
import { GitLabAPIOptions } from './types.mjs';
|
|
4
|
-
import { DownloadSourceMixin } from '../types/sources.mjs';
|
|
5
|
-
|
|
6
|
-
interface IfModifiedSinceOption {
|
|
7
|
-
ifModifiedSince: string | DownloadGitLabRepoResult;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Options for downloadGitLabRepo()
|
|
11
|
-
*/
|
|
12
|
-
interface DownloadGitLabRepoOptions extends ExportTargetOptions, GitLabAPIOptions, Partial<IfModifiedSinceOption> {
|
|
13
|
-
cleanupOldFiles?: boolean;
|
|
14
|
-
cleanupOldDirectories?: boolean;
|
|
15
|
-
log?: boolean;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Result
|
|
19
|
-
*/
|
|
20
|
-
interface DownloadGitLabRepoResult extends DownloadSourceMixin<'gitlab'> {
|
|
21
|
-
rootDir: string;
|
|
22
|
-
contentsDir: string;
|
|
23
|
-
hash: string;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Download GitLab repo using API
|
|
27
|
-
*/
|
|
28
|
-
declare function downloadGitLabRepo<T extends IfModifiedSinceOption & DownloadGitLabRepoOptions>(options: T): Promise<DownloadGitLabRepoResult | DocumentNotModified>;
|
|
29
|
-
declare function downloadGitLabRepo(options: DownloadGitLabRepoOptions): Promise<DownloadGitLabRepoResult>;
|
|
30
|
-
|
|
31
|
-
export { type DownloadGitLabRepoOptions, type DownloadGitLabRepoResult, downloadGitLabRepo };
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import { promises } from 'fs';
|
|
2
|
-
import { prepareDirectoryForExport } from '../../export/helpers/prepare.mjs';
|
|
3
|
-
import { getGitLabRepoHash } from './hash.mjs';
|
|
4
|
-
import { defaultGitLabBaseURI } from './types.mjs';
|
|
5
|
-
import { downloadFile } from '../api/download.mjs';
|
|
6
|
-
import { unzip } from '../helpers/unzip.mjs';
|
|
7
|
-
import 'pathe';
|
|
8
|
-
import '../api/index.mjs';
|
|
9
|
-
import '../api/cache.mjs';
|
|
10
|
-
import 'crypto';
|
|
11
|
-
import '../../misc/scan.mjs';
|
|
12
|
-
import '../api/config.mjs';
|
|
13
|
-
import '../api/fetch.mjs';
|
|
14
|
-
import 'fs/promises';
|
|
15
|
-
import 'extract-zip';
|
|
16
|
-
|
|
17
|
-
async function findMatchingDirs(rootDir, hash) {
|
|
18
|
-
const matches = [];
|
|
19
|
-
const files = await promises.readdir(rootDir);
|
|
20
|
-
for (let i = 0; i < files.length; i++) {
|
|
21
|
-
const file = files[i];
|
|
22
|
-
const lastChunk = file.split("-").pop();
|
|
23
|
-
if (lastChunk.length < 4 || lastChunk !== hash.slice(0, lastChunk.length)) {
|
|
24
|
-
continue;
|
|
25
|
-
}
|
|
26
|
-
const stat = await promises.stat(rootDir + "/" + file);
|
|
27
|
-
if (stat.isDirectory()) {
|
|
28
|
-
matches.push(file);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
return matches;
|
|
32
|
-
}
|
|
33
|
-
async function downloadGitLabRepo(options) {
|
|
34
|
-
const hash = await getGitLabRepoHash(options);
|
|
35
|
-
const ifModifiedSince = options.ifModifiedSince;
|
|
36
|
-
if (ifModifiedSince) {
|
|
37
|
-
const expectedHash = typeof ifModifiedSince === "string" ? ifModifiedSince : ifModifiedSince.downloadType === "gitlab" ? ifModifiedSince.hash : null;
|
|
38
|
-
if (hash === expectedHash) {
|
|
39
|
-
return "not_modified";
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
options.target = options.target.replace("{hash}", hash);
|
|
43
|
-
const rootDir = options.target = await prepareDirectoryForExport(options);
|
|
44
|
-
const archiveTarget = rootDir + "/" + hash + ".zip";
|
|
45
|
-
let exists = false;
|
|
46
|
-
try {
|
|
47
|
-
const stat = await promises.stat(archiveTarget);
|
|
48
|
-
exists = stat.isFile();
|
|
49
|
-
} catch (err) {
|
|
50
|
-
}
|
|
51
|
-
if (!exists) {
|
|
52
|
-
const uri = `${options.uri || defaultGitLabBaseURI}/${options.project}/repository/archive.zip?sha=${hash}`;
|
|
53
|
-
await downloadFile(
|
|
54
|
-
{
|
|
55
|
-
uri,
|
|
56
|
-
headers: {
|
|
57
|
-
Authorization: "token " + options.token
|
|
58
|
-
}
|
|
59
|
-
},
|
|
60
|
-
archiveTarget
|
|
61
|
-
);
|
|
62
|
-
}
|
|
63
|
-
const files = await promises.readdir(rootDir);
|
|
64
|
-
const hashSearch = "-" + hash;
|
|
65
|
-
for (let i = 0; i < files.length; i++) {
|
|
66
|
-
const file = files[i];
|
|
67
|
-
if (file === hash + ".zip") {
|
|
68
|
-
continue;
|
|
69
|
-
}
|
|
70
|
-
const filename = rootDir + "/" + files[i];
|
|
71
|
-
const stat = await promises.lstat(filename);
|
|
72
|
-
const isDir = stat.isDirectory();
|
|
73
|
-
if (
|
|
74
|
-
// Remove symbolic links
|
|
75
|
-
stat.isSymbolicLink() || // Remove if directory matches hash to avoid errors extracting zip
|
|
76
|
-
isDir && filename.slice(0 - hashSearch.length) === hashSearch || // Remove if directory and cleanupOldDirectories is not disabled
|
|
77
|
-
isDir && options.cleanupOldDirectories !== false || // Remove if file and cleanupOldFiles is enabled
|
|
78
|
-
!isDir && options.cleanupOldFiles
|
|
79
|
-
) {
|
|
80
|
-
try {
|
|
81
|
-
await promises.rm(filename, {
|
|
82
|
-
force: true,
|
|
83
|
-
recursive: true
|
|
84
|
-
});
|
|
85
|
-
} catch (err) {
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
await unzip(archiveTarget, rootDir);
|
|
90
|
-
const matchingDirs = await findMatchingDirs(rootDir, hash);
|
|
91
|
-
if (matchingDirs.length !== 1) {
|
|
92
|
-
throw new Error(`Error unpacking ${hash}.zip`);
|
|
93
|
-
}
|
|
94
|
-
const contentsDir = rootDir + "/" + matchingDirs[0];
|
|
95
|
-
return {
|
|
96
|
-
downloadType: "gitlab",
|
|
97
|
-
rootDir,
|
|
98
|
-
contentsDir,
|
|
99
|
-
hash
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
export { downloadGitLabRepo };
|