@iconify/tools 2.0.16 → 2.1.0-beta.1
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/parse.d.ts +1 -1
- package/lib/colors/validate.d.ts +1 -1
- package/lib/download/git/branch.cjs +2 -3
- package/lib/download/git/branch.mjs +2 -3
- package/lib/download/git/hash.cjs +1 -0
- package/lib/download/git/hash.mjs +1 -0
- package/lib/download/git/index.cjs +4 -2
- package/lib/download/git/index.mjs +4 -2
- package/lib/download/git/reset.cjs +4 -2
- package/lib/download/git/reset.mjs +4 -2
- package/lib/download/index.cjs +4 -2
- package/lib/download/index.mjs +4 -2
- package/lib/download/npm/index.cjs +1 -0
- package/lib/download/npm/index.mjs +1 -0
- package/lib/download/npm/version.cjs +1 -0
- package/lib/download/npm/version.mjs +1 -0
- package/lib/export/directory.d.ts +4 -2
- package/lib/export/icon-package.d.ts +4 -2
- package/lib/export/json-package.cjs +2 -2
- package/lib/export/json-package.d.ts +4 -2
- package/lib/export/json-package.mjs +2 -2
- package/lib/icon-set/index.cjs +100 -106
- package/lib/icon-set/index.d.ts +24 -5
- package/lib/icon-set/index.mjs +101 -107
- package/lib/icon-set/match.cjs +5 -5
- package/lib/icon-set/match.d.ts +5 -3
- package/lib/icon-set/match.mjs +2 -2
- package/lib/icon-set/merge.cjs +10 -3
- package/lib/icon-set/merge.d.ts +4 -2
- package/lib/icon-set/merge.mjs +10 -3
- package/lib/icon-set/modified.cjs +27 -0
- package/lib/icon-set/modified.d.ts +16 -0
- package/lib/icon-set/modified.mjs +23 -0
- package/lib/icon-set/props.cjs +8 -18
- package/lib/icon-set/props.d.ts +5 -6
- package/lib/icon-set/props.mjs +9 -18
- package/lib/icon-set/types.d.ts +1 -1
- package/lib/import/directory.cjs +4 -3
- package/lib/import/directory.d.ts +7 -5
- package/lib/import/directory.mjs +4 -3
- package/lib/import/figma/index.cjs +4 -3
- package/lib/import/figma/index.d.ts +4 -2
- package/lib/import/figma/index.mjs +4 -3
- package/lib/import/figma/nodes.d.ts +4 -2
- package/lib/import/figma/query.d.ts +4 -2
- package/lib/import/figma/types/nodes.d.ts +4 -2
- package/lib/import/figma/types/options.d.ts +4 -2
- package/lib/import/figma/types/result.d.ts +4 -2
- package/lib/index.cjs +5 -2
- package/lib/index.d.ts +3 -1
- package/lib/index.mjs +5 -2
- package/lib/misc/exec.cjs +7 -2
- package/lib/misc/exec.mjs +7 -2
- package/lib/optimise/flags.d.ts +1 -1
- package/lib/optimise/global-style.d.ts +1 -1
- package/lib/optimise/scale.d.ts +1 -1
- package/lib/optimise/svgo.cjs +58 -56
- package/lib/optimise/svgo.d.ts +12 -7
- package/lib/optimise/svgo.mjs +58 -55
- package/lib/svg/analyse.d.ts +1 -1
- package/lib/svg/cleanup/attribs.d.ts +1 -1
- package/lib/svg/cleanup/bad-tags.d.ts +1 -1
- package/lib/svg/cleanup/inline-style.d.ts +1 -1
- package/lib/svg/cleanup/root-svg.d.ts +1 -1
- package/lib/svg/cleanup/svgo-style.d.ts +1 -1
- package/lib/svg/cleanup.d.ts +1 -1
- package/lib/svg/index.cjs +7 -4
- package/lib/svg/index.d.ts +2 -2
- package/lib/svg/index.mjs +8 -5
- package/lib/svg/parse-style.d.ts +1 -1
- package/lib/svg/parse.d.ts +1 -1
- package/lib/types-f0980297.d.ts +258 -0
- package/package.json +6 -3
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { IconSet } from '../icon-set/index.js';
|
|
2
|
-
import '
|
|
3
|
-
import '@iconify/utils/lib/customisations';
|
|
2
|
+
import '../types-f0980297.js';
|
|
3
|
+
import '@iconify/utils/lib/customisations/defaults';
|
|
4
4
|
import '../icon-set/types.js';
|
|
5
5
|
import '../svg/index.js';
|
|
6
|
+
import '@iconify/utils/lib/customisations';
|
|
7
|
+
import '@iconify/utils/lib/icon-set/tree';
|
|
6
8
|
|
|
7
9
|
/**
|
|
8
10
|
* Entry for file
|
|
9
11
|
*/
|
|
10
|
-
interface
|
|
12
|
+
interface ImportDirectoryFileEntry {
|
|
11
13
|
path: string;
|
|
12
14
|
subdir: string;
|
|
13
15
|
file: string;
|
|
@@ -23,7 +25,7 @@ interface ImportDirectpryFileEntry {
|
|
|
23
25
|
* Callback can be asynchronous
|
|
24
26
|
*/
|
|
25
27
|
declare type ImportDirectoryKeywordCallbackResult = string | undefined;
|
|
26
|
-
declare type ImportDirectoryKeywordCallback = (file:
|
|
28
|
+
declare type ImportDirectoryKeywordCallback = (file: ImportDirectoryFileEntry, defaultKeyword: string, iconSet: IconSet) => ImportDirectoryKeywordCallbackResult | Promise<ImportDirectoryKeywordCallbackResult>;
|
|
27
29
|
/**
|
|
28
30
|
* Options
|
|
29
31
|
*/
|
|
@@ -38,4 +40,4 @@ interface ImportDirectoryOptions {
|
|
|
38
40
|
*/
|
|
39
41
|
declare function importDirectory(path: string, options?: ImportDirectoryOptions): Promise<IconSet>;
|
|
40
42
|
|
|
41
|
-
export {
|
|
43
|
+
export { ImportDirectoryFileEntry, ImportDirectoryKeywordCallback, importDirectory };
|
package/lib/import/directory.mjs
CHANGED
|
@@ -4,14 +4,15 @@ import { cleanupIconKeyword } from '../misc/keyword.mjs';
|
|
|
4
4
|
import { scanDirectory } from '../misc/scan.mjs';
|
|
5
5
|
import { SVG } from '../svg/index.mjs';
|
|
6
6
|
import { cleanupSVG } from '../svg/cleanup.mjs';
|
|
7
|
-
import '@iconify/utils/lib/icon';
|
|
7
|
+
import '@iconify/utils/lib/icon/defaults';
|
|
8
8
|
import '@iconify/utils/lib/svg/build';
|
|
9
|
-
import '@iconify/utils/lib/customisations';
|
|
9
|
+
import '@iconify/utils/lib/customisations/defaults';
|
|
10
10
|
import '@iconify/utils/lib/icon-set/minify';
|
|
11
11
|
import '@iconify/utils/lib/icon-set/convert-info';
|
|
12
12
|
import '../icon-set/props.mjs';
|
|
13
|
-
import '
|
|
13
|
+
import '@iconify/utils/lib/misc/objects';
|
|
14
14
|
import '@iconify/utils';
|
|
15
|
+
import 'cheerio';
|
|
15
16
|
import '../svg/cleanup/attribs.mjs';
|
|
16
17
|
import '../svg/data/attributes.mjs';
|
|
17
18
|
import '../svg/data/tags.mjs';
|
|
@@ -7,14 +7,15 @@ const svg_index = require('../../svg/index.cjs');
|
|
|
7
7
|
const svg_cleanup = require('../../svg/cleanup.cjs');
|
|
8
8
|
const import_figma_nodes = require('./nodes.cjs');
|
|
9
9
|
const import_figma_query = require('./query.cjs');
|
|
10
|
-
require('@iconify/utils/lib/icon');
|
|
10
|
+
require('@iconify/utils/lib/icon/defaults');
|
|
11
11
|
require('@iconify/utils/lib/svg/build');
|
|
12
|
-
require('@iconify/utils/lib/customisations');
|
|
12
|
+
require('@iconify/utils/lib/customisations/defaults');
|
|
13
13
|
require('@iconify/utils/lib/icon-set/minify');
|
|
14
14
|
require('@iconify/utils/lib/icon-set/convert-info');
|
|
15
15
|
require('../../icon-set/props.cjs');
|
|
16
|
-
require('
|
|
16
|
+
require('@iconify/utils/lib/misc/objects');
|
|
17
17
|
require('@iconify/utils');
|
|
18
|
+
require('cheerio');
|
|
18
19
|
require('../../svg/cleanup/attribs.cjs');
|
|
19
20
|
require('../../svg/data/attributes.cjs');
|
|
20
21
|
require('../../svg/data/tags.cjs');
|
|
@@ -2,10 +2,12 @@ import { DocumentNotModified } from '../../download/types/modified.js';
|
|
|
2
2
|
import { FigmaIfModifiedSinceOption, FigmaImportOptions } from './types/options.js';
|
|
3
3
|
import { FigmaImportResult } from './types/result.js';
|
|
4
4
|
import '../../icon-set/index.js';
|
|
5
|
-
import '
|
|
6
|
-
import '@iconify/utils/lib/customisations';
|
|
5
|
+
import '../../types-f0980297.js';
|
|
6
|
+
import '@iconify/utils/lib/customisations/defaults';
|
|
7
7
|
import '../../icon-set/types.js';
|
|
8
8
|
import '../../svg/index.js';
|
|
9
|
+
import '@iconify/utils/lib/customisations';
|
|
10
|
+
import '@iconify/utils/lib/icon-set/tree';
|
|
9
11
|
import './types/nodes.js';
|
|
10
12
|
import './types/api.js';
|
|
11
13
|
|
|
@@ -3,14 +3,15 @@ import { SVG } from '../../svg/index.mjs';
|
|
|
3
3
|
import { cleanupSVG } from '../../svg/cleanup.mjs';
|
|
4
4
|
import { getFigmaIconNodes } from './nodes.mjs';
|
|
5
5
|
import { figmaFilesQuery, figmaImagesQuery, figmaDownloadImages } from './query.mjs';
|
|
6
|
-
import '@iconify/utils/lib/icon';
|
|
6
|
+
import '@iconify/utils/lib/icon/defaults';
|
|
7
7
|
import '@iconify/utils/lib/svg/build';
|
|
8
|
-
import '@iconify/utils/lib/customisations';
|
|
8
|
+
import '@iconify/utils/lib/customisations/defaults';
|
|
9
9
|
import '@iconify/utils/lib/icon-set/minify';
|
|
10
10
|
import '@iconify/utils/lib/icon-set/convert-info';
|
|
11
11
|
import '../../icon-set/props.mjs';
|
|
12
|
-
import '
|
|
12
|
+
import '@iconify/utils/lib/misc/objects';
|
|
13
13
|
import '@iconify/utils';
|
|
14
|
+
import 'cheerio';
|
|
14
15
|
import '../../svg/cleanup/attribs.mjs';
|
|
15
16
|
import '../../svg/data/attributes.mjs';
|
|
16
17
|
import '../../svg/data/tags.mjs';
|
|
@@ -2,10 +2,12 @@ import { FigmaDocument } from './types/api.js';
|
|
|
2
2
|
import { FigmaGetIconNodesOptions } from './types/options.js';
|
|
3
3
|
import { FigmaNodesImportResult } from './types/result.js';
|
|
4
4
|
import '../../icon-set/index.js';
|
|
5
|
-
import '
|
|
6
|
-
import '@iconify/utils/lib/customisations';
|
|
5
|
+
import '../../types-f0980297.js';
|
|
6
|
+
import '@iconify/utils/lib/customisations/defaults';
|
|
7
7
|
import '../../icon-set/types.js';
|
|
8
8
|
import '../../svg/index.js';
|
|
9
|
+
import '@iconify/utils/lib/customisations';
|
|
10
|
+
import '@iconify/utils/lib/icon-set/tree';
|
|
9
11
|
import './types/nodes.js';
|
|
10
12
|
|
|
11
13
|
/**
|
|
@@ -4,10 +4,12 @@ import { FigmaDocument } from './types/api.js';
|
|
|
4
4
|
import { FigmaIfModifiedSinceOption, FigmaFilesQueryOptions, FigmaImagesQueryOptions } from './types/options.js';
|
|
5
5
|
import { FigmaNodesImportResult } from './types/result.js';
|
|
6
6
|
import '../../icon-set/index.js';
|
|
7
|
-
import '
|
|
8
|
-
import '@iconify/utils/lib/customisations';
|
|
7
|
+
import '../../types-f0980297.js';
|
|
8
|
+
import '@iconify/utils/lib/customisations/defaults';
|
|
9
9
|
import '../../icon-set/types.js';
|
|
10
10
|
import '../../svg/index.js';
|
|
11
|
+
import '@iconify/utils/lib/customisations';
|
|
12
|
+
import '@iconify/utils/lib/icon-set/tree';
|
|
11
13
|
import './types/nodes.js';
|
|
12
14
|
|
|
13
15
|
/**
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { IconFigmaNode, FigmaDocument } from './api.js';
|
|
2
2
|
import { FigmaNodesImportResult, FigmaIconNode } from './result.js';
|
|
3
3
|
import '../../../icon-set/index.js';
|
|
4
|
-
import '
|
|
5
|
-
import '@iconify/utils/lib/customisations';
|
|
4
|
+
import '../../../types-f0980297.js';
|
|
5
|
+
import '@iconify/utils/lib/customisations/defaults';
|
|
6
6
|
import '../../../icon-set/types.js';
|
|
7
7
|
import '../../../svg/index.js';
|
|
8
|
+
import '@iconify/utils/lib/customisations';
|
|
9
|
+
import '@iconify/utils/lib/icon-set/tree';
|
|
8
10
|
|
|
9
11
|
declare type FigmaImportParentNodeType = 'CANVAS' | 'FRAME' | 'GROUP';
|
|
10
12
|
declare type FigmaImportIconNodeType = IconFigmaNode['type'];
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { IconSet } from '../../../icon-set/index.js';
|
|
2
2
|
import { FigmaImportParentNodeFilter, FigmaImportNodeFilter } from './nodes.js';
|
|
3
3
|
import { FigmaIconNode } from './result.js';
|
|
4
|
-
import '
|
|
5
|
-
import '@iconify/utils/lib/customisations';
|
|
4
|
+
import '../../../types-f0980297.js';
|
|
5
|
+
import '@iconify/utils/lib/customisations/defaults';
|
|
6
6
|
import '../../../icon-set/types.js';
|
|
7
7
|
import '../../../svg/index.js';
|
|
8
|
+
import '@iconify/utils/lib/customisations';
|
|
9
|
+
import '@iconify/utils/lib/icon-set/tree';
|
|
8
10
|
import './api.js';
|
|
9
11
|
|
|
10
12
|
/**
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { IconSet } from '../../../icon-set/index.js';
|
|
2
|
-
import '
|
|
3
|
-
import '@iconify/utils/lib/customisations';
|
|
2
|
+
import '../../../types-f0980297.js';
|
|
3
|
+
import '@iconify/utils/lib/customisations/defaults';
|
|
4
4
|
import '../../../icon-set/types.js';
|
|
5
5
|
import '../../../svg/index.js';
|
|
6
|
+
import '@iconify/utils/lib/customisations';
|
|
7
|
+
import '@iconify/utils/lib/icon-set/tree';
|
|
6
8
|
|
|
7
9
|
/**
|
|
8
10
|
* Result for found icons
|
package/lib/index.cjs
CHANGED
|
@@ -49,7 +49,7 @@ const misc_bumpVersion = require('./misc/bump-version.cjs');
|
|
|
49
49
|
const download_api_index = require('./download/api/index.cjs');
|
|
50
50
|
require('cheerio');
|
|
51
51
|
require('@iconify/utils');
|
|
52
|
-
require('@iconify/utils/lib/icon');
|
|
52
|
+
require('@iconify/utils/lib/icon/defaults');
|
|
53
53
|
require('./css/parse.cjs');
|
|
54
54
|
require('./css/parser/tokens.cjs');
|
|
55
55
|
require('./css/parser/error.cjs');
|
|
@@ -62,11 +62,13 @@ require('./svg/data/tags.cjs');
|
|
|
62
62
|
require('./svg/analyse/error.cjs');
|
|
63
63
|
require('svgo');
|
|
64
64
|
require('@iconify/utils/lib/svg/build');
|
|
65
|
-
require('@iconify/utils/lib/customisations');
|
|
65
|
+
require('@iconify/utils/lib/customisations/defaults');
|
|
66
66
|
require('@iconify/utils/lib/icon-set/minify');
|
|
67
67
|
require('@iconify/utils/lib/icon-set/convert-info');
|
|
68
68
|
require('./icon-set/props.cjs');
|
|
69
|
+
require('@iconify/utils/lib/misc/objects');
|
|
69
70
|
require('./icon-set/match.cjs');
|
|
71
|
+
require('./icon-set/modified.cjs');
|
|
70
72
|
require('./import/figma/nodes.cjs');
|
|
71
73
|
require('./import/figma/query.cjs');
|
|
72
74
|
require('./download/api/cache.cjs');
|
|
@@ -74,6 +76,7 @@ require('fs');
|
|
|
74
76
|
require('crypto');
|
|
75
77
|
require('node-fetch');
|
|
76
78
|
require('pathe');
|
|
79
|
+
require('path');
|
|
77
80
|
require('child_process');
|
|
78
81
|
require('util');
|
|
79
82
|
require('stream');
|
package/lib/index.d.ts
CHANGED
|
@@ -43,11 +43,13 @@ export { execAsync } from './misc/exec.js';
|
|
|
43
43
|
export { cleanupIconKeyword } from './misc/keyword.js';
|
|
44
44
|
export { bumpVersion } from './misc/bump-version.js';
|
|
45
45
|
export { sendAPIQuery } from './download/api/index.js';
|
|
46
|
-
import '
|
|
46
|
+
import './types-f0980297.js';
|
|
47
47
|
import '@iconify/utils/lib/customisations';
|
|
48
48
|
import './css/parser/types.js';
|
|
49
49
|
import './svg/analyse/types.js';
|
|
50
|
+
import '@iconify/utils/lib/customisations/defaults';
|
|
50
51
|
import './icon-set/types.js';
|
|
52
|
+
import '@iconify/utils/lib/icon-set/tree';
|
|
51
53
|
import './download/types/modified.js';
|
|
52
54
|
import './import/figma/types/options.js';
|
|
53
55
|
import './import/figma/types/nodes.js';
|
package/lib/index.mjs
CHANGED
|
@@ -45,7 +45,7 @@ export { bumpVersion } from './misc/bump-version.mjs';
|
|
|
45
45
|
export { sendAPIQuery } from './download/api/index.mjs';
|
|
46
46
|
import 'cheerio';
|
|
47
47
|
import '@iconify/utils';
|
|
48
|
-
import '@iconify/utils/lib/icon';
|
|
48
|
+
import '@iconify/utils/lib/icon/defaults';
|
|
49
49
|
import './css/parse.mjs';
|
|
50
50
|
import './css/parser/tokens.mjs';
|
|
51
51
|
import './css/parser/error.mjs';
|
|
@@ -58,11 +58,13 @@ import './svg/data/tags.mjs';
|
|
|
58
58
|
import './svg/analyse/error.mjs';
|
|
59
59
|
import 'svgo';
|
|
60
60
|
import '@iconify/utils/lib/svg/build';
|
|
61
|
-
import '@iconify/utils/lib/customisations';
|
|
61
|
+
import '@iconify/utils/lib/customisations/defaults';
|
|
62
62
|
import '@iconify/utils/lib/icon-set/minify';
|
|
63
63
|
import '@iconify/utils/lib/icon-set/convert-info';
|
|
64
64
|
import './icon-set/props.mjs';
|
|
65
|
+
import '@iconify/utils/lib/misc/objects';
|
|
65
66
|
import './icon-set/match.mjs';
|
|
67
|
+
import './icon-set/modified.mjs';
|
|
66
68
|
import './import/figma/nodes.mjs';
|
|
67
69
|
import './import/figma/query.mjs';
|
|
68
70
|
import './download/api/cache.mjs';
|
|
@@ -70,6 +72,7 @@ import 'fs';
|
|
|
70
72
|
import 'crypto';
|
|
71
73
|
import 'node-fetch';
|
|
72
74
|
import 'pathe';
|
|
75
|
+
import 'path';
|
|
73
76
|
import 'child_process';
|
|
74
77
|
import 'util';
|
|
75
78
|
import 'stream';
|
package/lib/misc/exec.cjs
CHANGED
|
@@ -2,14 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
+
const path = require('path');
|
|
5
6
|
const child_process = require('child_process');
|
|
6
7
|
|
|
7
8
|
function execAsync(cmd, options) {
|
|
8
9
|
return new Promise((fulfill, reject) => {
|
|
9
|
-
|
|
10
|
+
const fullOptions = {
|
|
10
11
|
...options,
|
|
11
12
|
encoding: "utf8"
|
|
12
|
-
}
|
|
13
|
+
};
|
|
14
|
+
if (fullOptions.cwd) {
|
|
15
|
+
fullOptions.cwd = path.resolve(fullOptions.cwd);
|
|
16
|
+
}
|
|
17
|
+
child_process.exec(cmd, fullOptions, (error, stdout, stderr) => {
|
|
13
18
|
if (error) {
|
|
14
19
|
reject(error);
|
|
15
20
|
} else {
|
package/lib/misc/exec.mjs
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
|
+
import { resolve } from 'path';
|
|
1
2
|
import { exec } from 'child_process';
|
|
2
3
|
|
|
3
4
|
function execAsync(cmd, options) {
|
|
4
5
|
return new Promise((fulfill, reject) => {
|
|
5
|
-
|
|
6
|
+
const fullOptions = {
|
|
6
7
|
...options,
|
|
7
8
|
encoding: "utf8"
|
|
8
|
-
}
|
|
9
|
+
};
|
|
10
|
+
if (fullOptions.cwd) {
|
|
11
|
+
fullOptions.cwd = resolve(fullOptions.cwd);
|
|
12
|
+
}
|
|
13
|
+
exec(cmd, fullOptions, (error, stdout, stderr) => {
|
|
9
14
|
if (error) {
|
|
10
15
|
reject(error);
|
|
11
16
|
} else {
|
package/lib/optimise/flags.d.ts
CHANGED
package/lib/optimise/scale.d.ts
CHANGED
package/lib/optimise/svgo.cjs
CHANGED
|
@@ -4,48 +4,58 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
const svgo = require('svgo');
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
]
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
]
|
|
7
|
+
function getSVGOPlugins(options) {
|
|
8
|
+
return [
|
|
9
|
+
"cleanupAttrs",
|
|
10
|
+
"mergeStyles",
|
|
11
|
+
"inlineStyles",
|
|
12
|
+
"removeComments",
|
|
13
|
+
"removeUselessDefs",
|
|
14
|
+
"removeEditorsNSData",
|
|
15
|
+
"removeEmptyAttrs",
|
|
16
|
+
"removeEmptyContainers",
|
|
17
|
+
"convertStyleToAttrs",
|
|
18
|
+
"convertColors",
|
|
19
|
+
"convertTransform",
|
|
20
|
+
"removeUnknownsAndDefaults",
|
|
21
|
+
"removeNonInheritableGroupAttrs",
|
|
22
|
+
"removeUnusedNS",
|
|
23
|
+
"cleanupNumericValues",
|
|
24
|
+
"cleanupListOfValues",
|
|
25
|
+
"moveElemsAttrsToGroup",
|
|
26
|
+
"moveGroupAttrsToElems",
|
|
27
|
+
"collapseGroups",
|
|
28
|
+
"sortDefsChildren",
|
|
29
|
+
"sortAttrs",
|
|
30
|
+
...options.animated ? [] : ["removeUselessStrokeAndFill"],
|
|
31
|
+
...options.animated || options.keepShapes ? [] : [
|
|
32
|
+
"removeHiddenElems",
|
|
33
|
+
"convertShapeToPath",
|
|
34
|
+
"convertEllipseToCircle",
|
|
35
|
+
{
|
|
36
|
+
name: "convertPathData",
|
|
37
|
+
params: {
|
|
38
|
+
noSpaceAfterFlags: true
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: "mergePaths",
|
|
43
|
+
params: {
|
|
44
|
+
noSpaceAfterFlags: true
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"reusePaths"
|
|
48
|
+
],
|
|
49
|
+
...options.cleanupIDs !== false ? [
|
|
50
|
+
{
|
|
51
|
+
name: "cleanupIDs",
|
|
52
|
+
params: {
|
|
53
|
+
prefix: typeof options.cleanupIDs === "string" ? options.cleanupIDs : "svgID"
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
] : []
|
|
57
|
+
];
|
|
58
|
+
}
|
|
49
59
|
async function runSVGO(svg, options = {}) {
|
|
50
60
|
const code = svg.toString();
|
|
51
61
|
const multipass = options.multipass !== false;
|
|
@@ -53,18 +63,11 @@ async function runSVGO(svg, options = {}) {
|
|
|
53
63
|
if (options.plugins) {
|
|
54
64
|
plugins = options.plugins;
|
|
55
65
|
} else {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
{
|
|
62
|
-
name: "cleanupIDs",
|
|
63
|
-
params: {
|
|
64
|
-
prefix: typeof options.cleanupIDs === "string" ? options.cleanupIDs : "svgID"
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
] : []);
|
|
66
|
+
const animated = code.indexOf("<animate") !== -1 || code.indexOf("<set") !== -1;
|
|
67
|
+
plugins = getSVGOPlugins({
|
|
68
|
+
...options,
|
|
69
|
+
animated
|
|
70
|
+
});
|
|
68
71
|
}
|
|
69
72
|
const pluginOptions = {
|
|
70
73
|
plugins,
|
|
@@ -78,6 +81,5 @@ async function runSVGO(svg, options = {}) {
|
|
|
78
81
|
svg.load(content);
|
|
79
82
|
}
|
|
80
83
|
|
|
81
|
-
exports.
|
|
84
|
+
exports.getSVGOPlugins = getSVGOPlugins;
|
|
82
85
|
exports.runSVGO = runSVGO;
|
|
83
|
-
exports.shapeModifiyingSVGOPlugins = shapeModifiyingSVGOPlugins;
|
package/lib/optimise/svgo.d.ts
CHANGED
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
import { Plugin } from 'svgo';
|
|
2
2
|
import { SVG } from '../svg/index.js';
|
|
3
|
-
import '
|
|
3
|
+
import '../types-f0980297.js';
|
|
4
4
|
import '@iconify/utils/lib/customisations';
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
interface CleanupIDsOption {
|
|
7
|
+
cleanupIDs?: string | false;
|
|
8
|
+
}
|
|
9
|
+
interface GetSVGOPluingOptions extends CleanupIDsOption {
|
|
10
|
+
animated?: boolean;
|
|
11
|
+
keepShapes?: boolean;
|
|
12
|
+
}
|
|
7
13
|
/**
|
|
8
|
-
*
|
|
14
|
+
* Get list of plugins
|
|
9
15
|
*/
|
|
10
|
-
declare
|
|
16
|
+
declare function getSVGOPlugins(options: GetSVGOPluingOptions): Plugin[];
|
|
11
17
|
/**
|
|
12
18
|
* Options
|
|
13
19
|
*/
|
|
@@ -17,10 +23,9 @@ interface SVGOCommonOptions {
|
|
|
17
23
|
interface SVGOOptionsWithPlugin extends SVGOCommonOptions {
|
|
18
24
|
plugins: Plugin[];
|
|
19
25
|
}
|
|
20
|
-
interface SVGOptionsWithoutPlugin extends SVGOCommonOptions {
|
|
26
|
+
interface SVGOptionsWithoutPlugin extends SVGOCommonOptions, CleanupIDsOption {
|
|
21
27
|
plugins?: undefined;
|
|
22
28
|
keepShapes?: boolean;
|
|
23
|
-
cleanupIDs?: string | false;
|
|
24
29
|
}
|
|
25
30
|
declare type SVGOOptions = SVGOOptionsWithPlugin | SVGOptionsWithoutPlugin;
|
|
26
31
|
/**
|
|
@@ -28,4 +33,4 @@ declare type SVGOOptions = SVGOOptionsWithPlugin | SVGOptionsWithoutPlugin;
|
|
|
28
33
|
*/
|
|
29
34
|
declare function runSVGO(svg: SVG, options?: SVGOOptions): Promise<void>;
|
|
30
35
|
|
|
31
|
-
export {
|
|
36
|
+
export { getSVGOPlugins, runSVGO };
|
package/lib/optimise/svgo.mjs
CHANGED
|
@@ -1,47 +1,57 @@
|
|
|
1
1
|
import { optimize } from 'svgo';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
]
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
]
|
|
3
|
+
function getSVGOPlugins(options) {
|
|
4
|
+
return [
|
|
5
|
+
"cleanupAttrs",
|
|
6
|
+
"mergeStyles",
|
|
7
|
+
"inlineStyles",
|
|
8
|
+
"removeComments",
|
|
9
|
+
"removeUselessDefs",
|
|
10
|
+
"removeEditorsNSData",
|
|
11
|
+
"removeEmptyAttrs",
|
|
12
|
+
"removeEmptyContainers",
|
|
13
|
+
"convertStyleToAttrs",
|
|
14
|
+
"convertColors",
|
|
15
|
+
"convertTransform",
|
|
16
|
+
"removeUnknownsAndDefaults",
|
|
17
|
+
"removeNonInheritableGroupAttrs",
|
|
18
|
+
"removeUnusedNS",
|
|
19
|
+
"cleanupNumericValues",
|
|
20
|
+
"cleanupListOfValues",
|
|
21
|
+
"moveElemsAttrsToGroup",
|
|
22
|
+
"moveGroupAttrsToElems",
|
|
23
|
+
"collapseGroups",
|
|
24
|
+
"sortDefsChildren",
|
|
25
|
+
"sortAttrs",
|
|
26
|
+
...options.animated ? [] : ["removeUselessStrokeAndFill"],
|
|
27
|
+
...options.animated || options.keepShapes ? [] : [
|
|
28
|
+
"removeHiddenElems",
|
|
29
|
+
"convertShapeToPath",
|
|
30
|
+
"convertEllipseToCircle",
|
|
31
|
+
{
|
|
32
|
+
name: "convertPathData",
|
|
33
|
+
params: {
|
|
34
|
+
noSpaceAfterFlags: true
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: "mergePaths",
|
|
39
|
+
params: {
|
|
40
|
+
noSpaceAfterFlags: true
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"reusePaths"
|
|
44
|
+
],
|
|
45
|
+
...options.cleanupIDs !== false ? [
|
|
46
|
+
{
|
|
47
|
+
name: "cleanupIDs",
|
|
48
|
+
params: {
|
|
49
|
+
prefix: typeof options.cleanupIDs === "string" ? options.cleanupIDs : "svgID"
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
] : []
|
|
53
|
+
];
|
|
54
|
+
}
|
|
45
55
|
async function runSVGO(svg, options = {}) {
|
|
46
56
|
const code = svg.toString();
|
|
47
57
|
const multipass = options.multipass !== false;
|
|
@@ -49,18 +59,11 @@ async function runSVGO(svg, options = {}) {
|
|
|
49
59
|
if (options.plugins) {
|
|
50
60
|
plugins = options.plugins;
|
|
51
61
|
} else {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
{
|
|
58
|
-
name: "cleanupIDs",
|
|
59
|
-
params: {
|
|
60
|
-
prefix: typeof options.cleanupIDs === "string" ? options.cleanupIDs : "svgID"
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
] : []);
|
|
62
|
+
const animated = code.indexOf("<animate") !== -1 || code.indexOf("<set") !== -1;
|
|
63
|
+
plugins = getSVGOPlugins({
|
|
64
|
+
...options,
|
|
65
|
+
animated
|
|
66
|
+
});
|
|
64
67
|
}
|
|
65
68
|
const pluginOptions = {
|
|
66
69
|
plugins,
|
|
@@ -74,4 +77,4 @@ async function runSVGO(svg, options = {}) {
|
|
|
74
77
|
svg.load(content);
|
|
75
78
|
}
|
|
76
79
|
|
|
77
|
-
export {
|
|
80
|
+
export { getSVGOPlugins, runSVGO };
|
package/lib/svg/analyse.d.ts
CHANGED