material-icon-theme 5.6.0 → 5.8.0

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.
Files changed (66) hide show
  1. package/dist/material-icons.json +7810 -7740
  2. package/dist/module/index.cjs +160 -103
  3. package/dist/types/core/generator/applyConfigToIcons.d.ts +10 -0
  4. package/dist/types/core/generator/applyConfigToIcons.d.ts.map +1 -0
  5. package/dist/types/core/generator/clones/clonesGenerator.d.ts +3 -3
  6. package/dist/types/core/generator/clones/clonesGenerator.d.ts.map +1 -1
  7. package/dist/types/core/generator/clones/utils/cloneData.d.ts +2 -2
  8. package/dist/types/core/generator/clones/utils/cloneData.d.ts.map +1 -1
  9. package/dist/types/core/generator/clones/utils/cloning.d.ts +7 -8
  10. package/dist/types/core/generator/clones/utils/cloning.d.ts.map +1 -1
  11. package/dist/types/core/generator/clones/utils/color/colors.d.ts +4 -4
  12. package/dist/types/core/generator/clones/utils/color/colors.d.ts.map +1 -1
  13. package/dist/types/core/generator/clones/utils/color/materialPalette.d.ts +2 -2
  14. package/dist/types/core/generator/clones/utils/color/materialPalette.d.ts.map +1 -1
  15. package/dist/types/core/generator/config/defaultConfig.d.ts +1 -1
  16. package/dist/types/core/generator/config/defaultConfig.d.ts.map +1 -1
  17. package/dist/types/core/generator/constants.d.ts +8 -0
  18. package/dist/types/core/generator/constants.d.ts.map +1 -1
  19. package/dist/types/core/generator/fileGenerator.d.ts +1 -1
  20. package/dist/types/core/generator/fileGenerator.d.ts.map +1 -1
  21. package/dist/types/core/generator/folderGenerator.d.ts +1 -1
  22. package/dist/types/core/generator/folderGenerator.d.ts.map +1 -1
  23. package/dist/types/core/generator/generateManifest.d.ts +6 -0
  24. package/dist/types/core/generator/generateManifest.d.ts.map +1 -0
  25. package/dist/types/core/generator/iconOpacity.d.ts +1 -1
  26. package/dist/types/core/generator/iconOpacity.d.ts.map +1 -1
  27. package/dist/types/core/generator/iconSaturation.d.ts +1 -1
  28. package/dist/types/core/generator/iconSaturation.d.ts.map +1 -1
  29. package/dist/types/core/generator/languageGenerator.d.ts.map +1 -1
  30. package/dist/types/core/generator/renameIconFiles.d.ts +9 -0
  31. package/dist/types/core/generator/renameIconFiles.d.ts.map +1 -0
  32. package/dist/types/core/generator/shared/svg.d.ts +1 -1
  33. package/dist/types/core/generator/shared/svg.d.ts.map +1 -1
  34. package/dist/types/core/helpers/configHash.d.ts.map +1 -1
  35. package/dist/types/core/helpers/object.d.ts +2 -2
  36. package/dist/types/core/helpers/object.d.ts.map +1 -1
  37. package/dist/types/core/helpers/writeFile.d.ts +8 -0
  38. package/dist/types/core/helpers/writeFile.d.ts.map +1 -0
  39. package/dist/types/core/i18n/translate.d.ts.map +1 -1
  40. package/dist/types/core/icons/fileIcons.d.ts.map +1 -1
  41. package/dist/types/core/icons/folderIcons.d.ts.map +1 -1
  42. package/dist/types/core/index.d.ts +9 -4
  43. package/dist/types/core/index.d.ts.map +1 -1
  44. package/dist/types/core/logging/logger.d.ts +19 -0
  45. package/dist/types/core/logging/logger.d.ts.map +1 -0
  46. package/dist/types/core/models/icons/config.d.ts +3 -0
  47. package/dist/types/core/models/icons/config.d.ts.map +1 -1
  48. package/dist/types/core/models/manifest.d.ts +13 -3
  49. package/dist/types/core/models/manifest.d.ts.map +1 -1
  50. package/dist/types/module/index.d.ts +1 -1
  51. package/dist/types/module/index.d.ts.map +1 -1
  52. package/icons/container.clone.svg +1 -0
  53. package/icons/deepsource.svg +1 -0
  54. package/icons/folder-snapcraft-open.svg +1 -0
  55. package/icons/folder-snapcraft.svg +1 -0
  56. package/icons/hurl.svg +1 -0
  57. package/icons/liara.svg +1 -0
  58. package/icons/markdownlint.svg +1 -0
  59. package/icons/mist.clone.svg +1 -0
  60. package/icons/remark.svg +1 -0
  61. package/icons/tape.clone.svg +1 -0
  62. package/icons/tsil.svg +1 -0
  63. package/package.json +30 -20
  64. package/dist/types/core/generator/jsonGenerator.d.ts +0 -31
  65. package/dist/types/core/generator/jsonGenerator.d.ts.map +0 -1
  66. package/icons/container.svg +0 -1
@@ -20,7 +20,6 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/module/index.ts
21
21
  var module_exports = {};
22
22
  __export(module_exports, {
23
- Manifest: () => Manifest,
24
23
  availableIconPacks: () => availableIconPacks,
25
24
  generateManifest: () => generateManifest
26
25
  });
@@ -29,16 +28,21 @@ module.exports = __toCommonJS(module_exports);
29
28
  // src/core/helpers/object.ts
30
29
  var merge = (...objects) => {
31
30
  return objects.reduce((acc, obj) => {
32
- Object.keys(obj).forEach((key) => {
31
+ Object.keys(obj != null ? obj : {}).forEach((key) => {
33
32
  const accValue = acc[key];
34
- const objValue = obj[key];
35
- if ((accValue === void 0 || accValue === null) && objValue) {
33
+ const objValue = obj == null ? void 0 : obj[key];
34
+ if ((accValue === void 0 || accValue === null) && objValue !== void 0 && objValue !== null) {
36
35
  acc[key] = objValue;
37
- } else if ((objValue === void 0 || objValue === null) && accValue) {
36
+ } else if ((objValue === void 0 || objValue === null) && accValue !== void 0 && accValue !== null) {
38
37
  } else if (Array.isArray(objValue) && Array.isArray(accValue)) {
39
- acc[key] = accValue.concat(objValue);
38
+ acc[key] = [
39
+ ...new Set(accValue.concat(objValue))
40
+ ];
40
41
  } else if (typeof objValue === "object" && objValue !== null && typeof accValue === "object" && accValue !== null) {
41
- acc[key] = merge(accValue, objValue);
42
+ acc[key] = merge(
43
+ accValue,
44
+ objValue
45
+ );
42
46
  } else {
43
47
  acc[key] = objValue;
44
48
  }
@@ -48,7 +52,7 @@ var merge = (...objects) => {
48
52
  };
49
53
 
50
54
  // src/core/generator/config/defaultConfig.ts
51
- var getDefaultConfiguration = () => ({
55
+ var getDefaultConfig = () => ({
52
56
  folders: {
53
57
  theme: "specific",
54
58
  color: "#90a4ae",
@@ -64,22 +68,54 @@ var getDefaultConfiguration = () => ({
64
68
  associations: {},
65
69
  customClones: []
66
70
  },
67
- languages: { associations: {} }
71
+ languages: { associations: {} },
72
+ enableLogging: false,
73
+ logLevel: "info"
68
74
  });
69
75
  var padWithDefaultConfig = (config) => {
70
- const withDefaultConfig = merge(
71
- {},
72
- getDefaultConfiguration(),
73
- config != null ? config : {}
74
- );
76
+ const withDefaultConfig = merge(getDefaultConfig(), config != null ? config : {});
75
77
  return withDefaultConfig;
76
78
  };
77
79
 
80
+ // src/core/logging/logger.ts
81
+ var import_node_events = require("events");
82
+
83
+ // src/core/generator/constants.ts
84
+ var extensionName = "material-icon-theme";
85
+ var logEventKey = `${extensionName}-log-event`;
86
+ var iconFolderPath = "./../icons/";
87
+ var openedFolder = "-open";
88
+ var lightColorFileEnding = "_light";
89
+ var highContrastColorFileEnding = "_highContrast";
90
+ var cloneIconExtension = ".clone.svg";
91
+ var wildcardPattern = new RegExp(/^\*{1,2}\./);
92
+
93
+ // src/core/logging/logger.ts
94
+ var loggerEmitter = new import_node_events.EventEmitter({
95
+ captureRejections: true
96
+ });
97
+ var createLogger = () => {
98
+ const emitLogEvent = (level, message) => {
99
+ const timestamp = (/* @__PURE__ */ new Date()).toISOString();
100
+ const logEvent = {
101
+ level,
102
+ message: `[${level.toUpperCase()}] ${timestamp} - ${message}`
103
+ };
104
+ loggerEmitter.emit(logEventKey, logEvent);
105
+ };
106
+ return {
107
+ info: (message) => emitLogEvent("info", message),
108
+ error: (message) => emitLogEvent("error", message),
109
+ debug: (message) => emitLogEvent("debug", message)
110
+ };
111
+ };
112
+ var logger = createLogger();
113
+
78
114
  // src/core/helpers/configHash.ts
79
115
  var getFileConfigHash = (config) => {
80
116
  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
81
117
  try {
82
- const defaults = getDefaultConfiguration();
118
+ const defaults = getDefaultConfig();
83
119
  let fileConfigString = "";
84
120
  if (config.saturation !== defaults.saturation || config.opacity !== defaults.opacity || ((_a = config.folders) == null ? void 0 : _a.color) !== defaults.folders.color || ((_b = config.files) == null ? void 0 : _b.color) !== defaults.files.color || ((_e = (_d = (_c = config.files) == null ? void 0 : _c.customClones) == null ? void 0 : _d.length) != null ? _e : 0) > 0 || ((_h = (_g = (_f = config.folders) == null ? void 0 : _f.customClones) == null ? void 0 : _g.length) != null ? _h : 0) > 0) {
85
121
  fileConfigString += `~${getHash(
@@ -95,7 +131,7 @@ var getFileConfigHash = (config) => {
95
131
  }
96
132
  return fileConfigString;
97
133
  } catch (error) {
98
- console.error(error);
134
+ logger.error(error);
99
135
  return "";
100
136
  }
101
137
  };
@@ -111,48 +147,6 @@ var getHash = (value) => {
111
147
  return hash;
112
148
  };
113
149
 
114
- // src/core/generator/constants.ts
115
- var iconFolderPath = "./../icons/";
116
- var openedFolder = "-open";
117
- var lightColorFileEnding = "_light";
118
- var highContrastColorFileEnding = "_highContrast";
119
- var cloneIconExtension = ".clone.svg";
120
- var wildcardPattern = new RegExp(/^\*{1,2}\./);
121
-
122
- // src/core/models/manifest.ts
123
- var Manifest = class {
124
- file;
125
- folder;
126
- folderExpanded;
127
- folderNames;
128
- folderNamesExpanded;
129
- rootFolder;
130
- rootFolderExpanded;
131
- fileExtensions;
132
- fileNames;
133
- languageIds;
134
- iconDefinitions;
135
- light;
136
- highContrast;
137
- hidesExplorerArrows;
138
- constructor() {
139
- this.iconDefinitions = {};
140
- this.folderNames = {};
141
- this.folderNamesExpanded = {};
142
- this.fileExtensions = {};
143
- this.fileNames = {};
144
- this.languageIds = {};
145
- this.light = {
146
- fileExtensions: {},
147
- fileNames: {}
148
- };
149
- this.highContrast = {
150
- fileExtensions: {},
151
- fileNames: {}
152
- };
153
- }
154
- };
155
-
156
150
  // src/core/generator/fileGenerator.ts
157
151
  var loadFileIconDefinitions = (fileIcons2, config, manifest) => {
158
152
  var _a;
@@ -232,10 +226,9 @@ var loadFileIconDefinitions = (fileIcons2, config, manifest) => {
232
226
  return manifest;
233
227
  };
234
228
  var mapSpecificFileIcons = (icon, mappingType, manifest, customFileAssociation = {}) => {
235
- const manifestCopy = merge({}, manifest);
236
229
  const iconMappingType = icon[mappingType];
237
230
  if (iconMappingType === void 0) {
238
- return manifestCopy;
231
+ return manifest;
239
232
  }
240
233
  iconMappingType.forEach((name) => {
241
234
  var _a, _b;
@@ -246,9 +239,9 @@ var mapSpecificFileIcons = (icon, mappingType, manifest, customFileAssociation =
246
239
  return name.toLowerCase().indexOf(fileExtension.toLowerCase()) !== -1;
247
240
  }
248
241
  );
249
- const configMappingType = manifestCopy[mappingType];
250
- const configLightMappingType = (_a = manifestCopy.light) == null ? void 0 : _a[mappingType];
251
- const configHighContrastMappingType = (_b = manifestCopy.highContrast) == null ? void 0 : _b[mappingType];
242
+ const configMappingType = manifest[mappingType];
243
+ const configLightMappingType = (_a = manifest.light) == null ? void 0 : _a[mappingType];
244
+ const configHighContrastMappingType = (_b = manifest.highContrast) == null ? void 0 : _b[mappingType];
252
245
  if (shouldOverwriteFileNames || !configMappingType || !configLightMappingType || !configHighContrastMappingType)
253
246
  return;
254
247
  configMappingType[name] = icon.name;
@@ -259,7 +252,7 @@ var mapSpecificFileIcons = (icon, mappingType, manifest, customFileAssociation =
259
252
  configHighContrastMappingType[name] = `${icon.name}${highContrastColorFileEnding}`;
260
253
  }
261
254
  });
262
- return manifestCopy;
255
+ return manifest;
263
256
  };
264
257
  var disableIconsByPack = (fileIcons2, activeIconPack) => {
265
258
  return fileIcons2.icons.filter((icon) => {
@@ -298,7 +291,6 @@ var getCustomIcons = (fileAssociations) => {
298
291
  // src/core/generator/folderGenerator.ts
299
292
  var loadFolderIconDefinitions = (folderIcons2, config, manifest) => {
300
293
  var _a, _b, _c;
301
- manifest = merge({}, manifest);
302
294
  manifest.hidesExplorerArrows = config.hidesExplorerArrows;
303
295
  const activeTheme = getEnabledFolderTheme(folderIcons2, (_a = config.folders) == null ? void 0 : _a.theme);
304
296
  if (!activeTheme) {
@@ -316,12 +308,10 @@ var loadFolderIconDefinitions = (folderIcons2, config, manifest) => {
316
308
  manifest = setIconDefinitions(manifest, config, icon);
317
309
  manifest = merge(manifest, setFolderNames(icon.name, folderNames));
318
310
  manifest.light = icon.light ? merge(
319
- {},
320
311
  manifest.light,
321
312
  setFolderNames(icon.name, folderNames, lightColorFileEnding)
322
313
  ) : manifest.light;
323
314
  manifest.highContrast = icon.highContrast ? merge(
324
- {},
325
315
  manifest.highContrast,
326
316
  setFolderNames(icon.name, folderNames, highContrastColorFileEnding)
327
317
  ) : manifest.highContrast;
@@ -335,12 +325,10 @@ var setDefaultFolderIcons = (theme, manifest, config) => {
335
325
  manifest = setIconDefinitions(manifest, config, theme.defaultIcon);
336
326
  }
337
327
  manifest = merge(
338
- {},
339
328
  manifest,
340
329
  createDefaultIconConfigObject(hasFolderIcons, theme, "")
341
330
  );
342
331
  manifest.light = theme.defaultIcon.light ? merge(
343
- {},
344
332
  manifest.light,
345
333
  createDefaultIconConfigObject(
346
334
  hasFolderIcons,
@@ -349,7 +337,6 @@ var setDefaultFolderIcons = (theme, manifest, config) => {
349
337
  )
350
338
  ) : manifest.light;
351
339
  manifest.highContrast = theme.defaultIcon.highContrast ? merge(
352
- {},
353
340
  manifest.highContrast,
354
341
  createDefaultIconConfigObject(
355
342
  hasFolderIcons,
@@ -358,14 +345,12 @@ var setDefaultFolderIcons = (theme, manifest, config) => {
358
345
  )
359
346
  ) : manifest.highContrast;
360
347
  manifest = merge(
361
- {},
362
348
  manifest,
363
349
  createRootIconConfigObject(hasFolderIcons, theme, "")
364
350
  );
365
351
  if (theme.rootFolder) {
366
352
  manifest = setIconDefinitions(manifest, config, theme.rootFolder);
367
353
  manifest.light = theme.rootFolder.light ? merge(
368
- {},
369
354
  manifest.light,
370
355
  createRootIconConfigObject(
371
356
  hasFolderIcons,
@@ -374,7 +359,6 @@ var setDefaultFolderIcons = (theme, manifest, config) => {
374
359
  )
375
360
  ) : manifest.light;
376
361
  manifest.highContrast = theme.rootFolder.highContrast ? merge(
377
- {},
378
362
  manifest.highContrast,
379
363
  createRootIconConfigObject(
380
364
  hasFolderIcons,
@@ -401,7 +385,6 @@ var setIconDefinitions = (manifest, config, icon) => {
401
385
  manifest = createIconDefinitions(manifest, config, icon.name, "", isClone);
402
386
  if (icon.light) {
403
387
  manifest = merge(
404
- {},
405
388
  manifest,
406
389
  createIconDefinitions(
407
390
  manifest,
@@ -414,7 +397,6 @@ var setIconDefinitions = (manifest, config, icon) => {
414
397
  }
415
398
  if (icon.highContrast) {
416
399
  manifest = merge(
417
- {},
418
400
  manifest,
419
401
  createIconDefinitions(
420
402
  manifest,
@@ -505,6 +487,24 @@ var getCustomIcons2 = (folderAssociations) => {
505
487
  return icons;
506
488
  };
507
489
 
490
+ // src/core/models/manifest.ts
491
+ var createEmptyManifest = () => ({
492
+ iconDefinitions: {},
493
+ folderNames: {},
494
+ folderNamesExpanded: {},
495
+ fileExtensions: {},
496
+ fileNames: {},
497
+ languageIds: {},
498
+ light: {
499
+ fileExtensions: {},
500
+ fileNames: {}
501
+ },
502
+ highContrast: {
503
+ fileExtensions: {},
504
+ fileNames: {}
505
+ }
506
+ });
507
+
508
508
  // src/core/models/icons/iconPack.ts
509
509
  var IconPack = /* @__PURE__ */ ((IconPack2) => {
510
510
  IconPack2["Angular"] = "angular";
@@ -844,7 +844,8 @@ var fileIcons = {
844
844
  "prefs",
845
845
  "sln.dotsettings",
846
846
  "sln.dotsettings.user",
847
- "cfg"
847
+ "cfg",
848
+ "cnf"
848
849
  ],
849
850
  fileNames: [
850
851
  ".jshintignore",
@@ -853,7 +854,8 @@ var fileIcons = {
853
854
  ".yardopts",
854
855
  "manifest.mf",
855
856
  ".clang-format",
856
- ".clang-tidy"
857
+ ".clang-tidy",
858
+ ".conf"
857
859
  ]
858
860
  },
859
861
  {
@@ -1071,7 +1073,7 @@ var fileIcons = {
1071
1073
  "sha256sum",
1072
1074
  "sha256sums"
1073
1075
  ],
1074
- fileNames: [".htpasswd", "sha256sums"]
1076
+ fileNames: [".htpasswd", "sha256sums", ".secrets"]
1075
1077
  },
1076
1078
  {
1077
1079
  name: "font",
@@ -1285,6 +1287,14 @@ var fileIcons = {
1285
1287
  { name: "xaml", fileExtensions: ["xaml"] },
1286
1288
  { name: "haskell", fileExtensions: ["hs"] },
1287
1289
  { name: "kotlin", fileExtensions: ["kt", "kts"] },
1290
+ {
1291
+ name: "mist",
1292
+ fileExtensions: ["mist.js", "mist.ts", "mist.jsx", "mist.tsx"],
1293
+ clone: {
1294
+ base: "liquid",
1295
+ color: "blue-500"
1296
+ }
1297
+ },
1288
1298
  { name: "otne", fileExtensions: ["otne"] },
1289
1299
  {
1290
1300
  name: "git",
@@ -1363,7 +1373,7 @@ var fileIcons = {
1363
1373
  },
1364
1374
  {
1365
1375
  name: "nuxt",
1366
- fileNames: ["nuxt.config.js", "nuxt.config.ts", ".nuxtignore"]
1376
+ fileNames: ["nuxt.config.js", "nuxt.config.ts", ".nuxtignore", ".nuxtrc"]
1367
1377
  },
1368
1378
  {
1369
1379
  name: "harmonix",
@@ -1530,6 +1540,10 @@ var fileIcons = {
1530
1540
  fileNames: ["vercel.json", ".vercelignore", "now.json", ".nowignore"],
1531
1541
  light: true
1532
1542
  },
1543
+ {
1544
+ name: "liara",
1545
+ fileNames: ["liara.json", ".liaraignore"]
1546
+ },
1533
1547
  {
1534
1548
  name: "verdaccio",
1535
1549
  fileNames: ["verdaccio.yml"]
@@ -1554,6 +1568,19 @@ var fileIcons = {
1554
1568
  ],
1555
1569
  light: true
1556
1570
  },
1571
+ {
1572
+ name: "remark",
1573
+ fileNames: [
1574
+ ".remarkrc",
1575
+ ".remarkrc.cjs",
1576
+ ".remarkrc.js",
1577
+ ".remarkrc.json",
1578
+ ".remarkrc.mjs",
1579
+ ".remarkrc.yaml",
1580
+ ".remarkrc.yml",
1581
+ ".remarkignore"
1582
+ ]
1583
+ },
1557
1584
  {
1558
1585
  name: "remix",
1559
1586
  fileNames: ["remix.config.js", "remix.config.ts"],
@@ -1724,7 +1751,8 @@ var fileIcons = {
1724
1751
  ".env.production.local",
1725
1752
  ".env.staging.local",
1726
1753
  ".env.test.local",
1727
- ".env.uat"
1754
+ ".env.uat",
1755
+ ".vars"
1728
1756
  ]
1729
1757
  },
1730
1758
  {
@@ -1821,7 +1849,15 @@ var fileIcons = {
1821
1849
  },
1822
1850
  { name: "appveyor", fileNames: [".appveyor.yml", "appveyor.yml"] },
1823
1851
  { name: "travis", fileNames: [".travis.yml"] },
1824
- { name: "codecov", fileNames: [".codecov.yml", "codecov.yml"] },
1852
+ {
1853
+ name: "codecov",
1854
+ fileNames: [
1855
+ ".codecov.yml",
1856
+ "codecov.yml",
1857
+ ".codecov.yaml",
1858
+ "codecov.yaml"
1859
+ ]
1860
+ },
1825
1861
  {
1826
1862
  name: "sonarcloud",
1827
1863
  fileNames: [
@@ -2134,7 +2170,7 @@ var fileIcons = {
2134
2170
  fileNames: ["makefile", "gnumakefile", "kbuild"]
2135
2171
  },
2136
2172
  { name: "foxpro", fileExtensions: ["fxp", "prg"] },
2137
- { name: "i18n", fileExtensions: ["pot", "po", "mo", "lang"] },
2173
+ { name: "i18n", fileExtensions: ["pot", "po", "mo", "lang", "xlf"] },
2138
2174
  { name: "webassembly", fileExtensions: ["wat", "wasm"] },
2139
2175
  {
2140
2176
  name: "semantic-release",
@@ -3031,6 +3067,10 @@ var fileIcons = {
3031
3067
  },
3032
3068
  {
3033
3069
  name: "container",
3070
+ clone: {
3071
+ base: "3d",
3072
+ color: "#00b0ff"
3073
+ },
3034
3074
  fileNames: [".devcontainer/devcontainer.json"]
3035
3075
  },
3036
3076
  {
@@ -3053,6 +3093,36 @@ var fileIcons = {
3053
3093
  {
3054
3094
  name: "grafana-alloy",
3055
3095
  fileExtensions: ["alloy"]
3096
+ },
3097
+ {
3098
+ name: "markdownlint",
3099
+ fileNames: [
3100
+ ".markdownlint.json",
3101
+ ".markdownlint.jsonc",
3102
+ ".markdownlint.yaml",
3103
+ ".markdownlint.yml",
3104
+ ".markdownlint-cli2.jsonc",
3105
+ ".markdownlint-cli2.yaml",
3106
+ ".markdownlint-cli2.cjs",
3107
+ ".markdownlint-cli2.mjs"
3108
+ ]
3109
+ },
3110
+ {
3111
+ name: "tsil",
3112
+ fileExtensions: ["\u0446"]
3113
+ },
3114
+ {
3115
+ name: "deepsource",
3116
+ fileNames: [".deepsource.toml"]
3117
+ },
3118
+ {
3119
+ name: "tape",
3120
+ fileExtensions: ["tape"],
3121
+ clone: { base: "video", color: "purple-300" }
3122
+ },
3123
+ {
3124
+ name: "hurl",
3125
+ fileExtensions: ["hurl"]
3056
3126
  }
3057
3127
  ])
3058
3128
  };
@@ -3344,7 +3414,7 @@ var folderIcons = [
3344
3414
  },
3345
3415
  {
3346
3416
  name: "folder-astro",
3347
- folderNames: [".astro"]
3417
+ folderNames: ["astro"]
3348
3418
  },
3349
3419
  {
3350
3420
  name: "folder-database",
@@ -3422,7 +3492,7 @@ var folderIcons = [
3422
3492
  ]
3423
3493
  },
3424
3494
  { name: "folder-lua", folderNames: ["lua"] },
3425
- { name: "folder-turborepo", folderNames: [".turbo"] },
3495
+ { name: "folder-turborepo", folderNames: ["turbo"] },
3426
3496
  {
3427
3497
  name: "folder-typescript",
3428
3498
  folderNames: ["typescript", "ts", "typings", "@types", "types"]
@@ -3682,7 +3752,7 @@ var folderIcons = [
3682
3752
  { name: "folder-supabase", folderNames: ["supabase"] },
3683
3753
  { name: "folder-private", folderNames: ["private"] },
3684
3754
  { name: "folder-linux", folderNames: ["linux", "linuxbsd", "unix"] },
3685
- { name: "folder-windows", folderNames: ["windows", "win"] },
3755
+ { name: "folder-windows", folderNames: ["windows", "win", "win32"] },
3686
3756
  {
3687
3757
  name: "folder-macos",
3688
3758
  folderNames: ["macos", "mac", "osx", "DS_Store"]
@@ -3860,14 +3930,7 @@ var folderIcons = [
3860
3930
  },
3861
3931
  {
3862
3932
  name: "folder-helm",
3863
- folderNames: [
3864
- "helm",
3865
- "helmchart",
3866
- "helmcharts",
3867
- ".helm",
3868
- ".helmchart",
3869
- ".helmcharts"
3870
- ]
3933
+ folderNames: ["helm", "helmchart", "helmcharts"]
3871
3934
  },
3872
3935
  {
3873
3936
  name: "folder-queue",
@@ -3941,7 +4004,8 @@ var folderIcons = [
3941
4004
  name: "folder-seeders",
3942
4005
  folderNames: ["seeds", "seeders", "seed", "seeding"]
3943
4006
  },
3944
- { name: "folder-bicep", folderNames: ["bicep"] }
4007
+ { name: "folder-bicep", folderNames: ["bicep"] },
4008
+ { name: "folder-snapcraft", folderNames: ["snap", "snapcraft"] }
3945
4009
  ]
3946
4010
  },
3947
4011
  {
@@ -4122,12 +4186,10 @@ var loadLanguageIconDefinitions = (languageIcons2, config, manifest) => {
4122
4186
  if (lang.disabled) return;
4123
4187
  manifest = setIconDefinitions2(manifest, config, lang.icon);
4124
4188
  manifest = merge(
4125
- {},
4126
4189
  manifest,
4127
4190
  setLanguageIdentifiers(lang.icon.name, lang.ids)
4128
4191
  );
4129
4192
  manifest.light = lang.icon.light ? merge(
4130
- {},
4131
4193
  manifest.light,
4132
4194
  setLanguageIdentifiers(
4133
4195
  lang.icon.name + lightColorFileEnding,
@@ -4135,7 +4197,6 @@ var loadLanguageIconDefinitions = (languageIcons2, config, manifest) => {
4135
4197
  )
4136
4198
  ) : manifest.light;
4137
4199
  manifest.highContrast = lang.icon.highContrast ? merge(
4138
- {},
4139
4200
  manifest.highContrast,
4140
4201
  setLanguageIdentifiers(
4141
4202
  lang.icon.name + highContrastColorFileEnding,
@@ -4148,7 +4209,6 @@ var loadLanguageIconDefinitions = (languageIcons2, config, manifest) => {
4148
4209
  var setIconDefinitions2 = (manifest, config, icon) => {
4149
4210
  manifest = createIconDefinitions2(manifest, config, icon.name);
4150
4211
  manifest = merge(
4151
- {},
4152
4212
  manifest,
4153
4213
  icon.light ? createIconDefinitions2(
4154
4214
  manifest,
@@ -4157,7 +4217,6 @@ var setIconDefinitions2 = (manifest, config, icon) => {
4157
4217
  ) : manifest.light
4158
4218
  );
4159
4219
  manifest = merge(
4160
- {},
4161
4220
  manifest,
4162
4221
  icon.highContrast ? createIconDefinitions2(
4163
4222
  manifest,
@@ -4197,10 +4256,10 @@ var disableLanguagesByPack = (languageIcons2, activatedIconPack) => {
4197
4256
  });
4198
4257
  };
4199
4258
 
4200
- // src/core/generator/jsonGenerator.ts
4259
+ // src/core/generator/generateManifest.ts
4201
4260
  var generateManifest = (config) => {
4202
4261
  const refinedConfig = padWithDefaultConfig(config);
4203
- const manifest = new Manifest();
4262
+ const manifest = createEmptyManifest();
4204
4263
  const languageIconDefinitions = loadLanguageIconDefinitions(
4205
4264
  languageIcons,
4206
4265
  refinedConfig,
@@ -4217,7 +4276,6 @@ var generateManifest = (config) => {
4217
4276
  manifest
4218
4277
  );
4219
4278
  return merge(
4220
- {},
4221
4279
  languageIconDefinitions,
4222
4280
  fileIconDefinitions,
4223
4281
  folderIconDefinitions
@@ -4228,7 +4286,6 @@ var generateManifest = (config) => {
4228
4286
  var availableIconPacks = Object.values(IconPack);
4229
4287
  // Annotate the CommonJS export names for ESM import in node:
4230
4288
  0 && (module.exports = {
4231
- Manifest,
4232
4289
  availableIconPacks,
4233
4290
  generateManifest
4234
4291
  });
@@ -0,0 +1,10 @@
1
+ import type { Config } from '../models/icons/config';
2
+ /**
3
+ * Apply the configuration to the icons. But only if the configuration has changed.
4
+ * If the affectedConfig is not set then all icons will be updated.
5
+ *
6
+ * @param config Configuration that customizes the icons and the manifest.
7
+ * @param affectedConfig Set of configuration keys that have changed so that not all functions need to be executed.
8
+ */
9
+ export declare const applyConfigToIcons: (config: Config, oldConfig: Config) => Promise<void>;
10
+ //# sourceMappingURL=applyConfigToIcons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyConfigToIcons.d.ts","sourceRoot":"","sources":["../../../../src/core/generator/applyConfigToIcons.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAMrD;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,WAAkB,MAAM,aAAa,MAAM,kBAsBzE,CAAC"}
@@ -6,13 +6,13 @@ import type { Manifest } from '../../models/manifest';
6
6
  * Creates custom icons by cloning already existing icons and changing
7
7
  * their colors, based on the user's provided configurations.
8
8
  */
9
- export declare function customClonesIcons(manifest: Manifest, config: Config): Manifest;
9
+ export declare const customClonesIcons: (manifest: Manifest, config: Config) => Promise<Manifest>;
10
10
  /**
11
11
  * Creates custom icons by cloning already existing icons and changing
12
12
  * their colors, based on the configurations provided by the extension.
13
13
  * (this is meant to be called at build time)
14
14
  */
15
- export declare function generateConfiguredClones(iconsList: FolderTheme[] | FileIcons, manifest: Manifest): void;
15
+ export declare const generateConfiguredClones: (iconsList: FolderTheme[] | FileIcons, manifest: Manifest) => Promise<void>;
16
16
  /** Checks if there are any custom clones to be created */
17
- export declare function hasCustomClones(config: Config): boolean;
17
+ export declare const hasCustomClones: (config: Config) => boolean;
18
18
  //# sourceMappingURL=clonesGenerator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"clonesGenerator.d.ts","sourceRoot":"","sources":["../../../../../src/core/generator/clones/clonesGenerator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,MAAM,EAIP,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAKtD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,GACb,QAAQ,CAiBV;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,WAAW,EAAE,GAAG,SAAS,EACpC,QAAQ,EAAE,QAAQ,QA+CnB;AAED,0DAA0D;AAC1D,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAKvD"}
1
+ {"version":3,"file":"clonesGenerator.d.ts","sourceRoot":"","sources":["../../../../../src/core/generator/clones/clonesGenerator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,MAAM,EAIP,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAKtD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,aAClB,QAAQ,UACV,MAAM,KACb,OAAO,CAAC,QAAQ,CAiBlB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,cACxB,WAAW,EAAE,GAAG,SAAS,YAC1B,QAAQ,kBA+CnB,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,eAAe,WAAY,MAAM,KAAG,OAKhD,CAAC"}
@@ -29,10 +29,10 @@ export declare const isFolder: (clone: CustomClone) => clone is FolderIconClone;
29
29
  * @param manifest the current configuration of the extension
30
30
  * @param hash the current hash being applied to the icons
31
31
  */
32
- export declare function getCloneData(cloneOpts: CustomClone, manifest: Manifest, subFolder: string, hash: string, ext?: string): CloneData[] | undefined;
32
+ export declare const getCloneData: (cloneOpts: CustomClone, manifest: Manifest, subFolder: string, hash: string, ext?: string) => CloneData[] | undefined;
33
33
  /**
34
34
  * removes the clones folder if it exists
35
35
  * and creates a new one if `keep` is true
36
36
  */
37
- export declare function clearCloneFolder(keep?: boolean): void;
37
+ export declare const clearCloneFolder: (keep?: boolean) => Promise<void>;
38
38
  //# sourceMappingURL=cloneData.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cloneData.d.ts","sourceRoot":"","sources":["../../../../../../src/core/generator/clones/utils/cloneData.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,WAAW,EAEX,eAAe,EAChB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAOzD,oBAAY,OAAO;IACjB,IAAI,IAAA;IACJ,IAAI,IAAA;IACJ,KAAK,IAAA;IACL,SAAS,IAAA;CACV;AAED,oBAAY,IAAI;IACd,MAAM,IAAA;IACN,IAAI,IAAA;CACL;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;CAChB,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,QAAQ,UAAW,WAAW,KAAG,KAAK,IAAI,eAEtD,CAAC;AAMF;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,WAAW,EACtB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,GAAG,CAAC,EAAE,MAAM,GACX,SAAS,EAAE,GAAG,SAAS,CAwBzB;AAgID;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,GAAE,OAAc,GAAG,IAAI,CAU3D"}
1
+ {"version":3,"file":"cloneData.d.ts","sourceRoot":"","sources":["../../../../../../src/core/generator/clones/utils/cloneData.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,WAAW,EAEX,eAAe,EAChB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAOzD,oBAAY,OAAO;IACjB,IAAI,IAAA;IACJ,IAAI,IAAA;IACJ,KAAK,IAAA;IACL,SAAS,IAAA;CACV;AAED,oBAAY,IAAI;IACd,MAAM,IAAA;IACN,IAAI,IAAA;CACL;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;CAChB,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,QAAQ,UAAW,WAAW,KAAG,KAAK,IAAI,eAEtD,CAAC;AAMF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,cACZ,WAAW,YACZ,QAAQ,aACP,MAAM,QACX,MAAM,QACN,MAAM,KACX,SAAS,EAAE,GAAG,SAwBhB,CAAC;AAgIF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,sBAAwB,OAAO,CAAC,IAAI,CAUhE,CAAC"}
@@ -1,20 +1,19 @@
1
1
  import { type INode } from 'svgson';
2
- import { Manifest } from '../../../models/manifest';
3
2
  /**
4
3
  * Recursively walks through an SVG node tree and its children,
5
4
  * calling a callback on each node.
6
5
  */
7
- export declare function traverse(node: INode, callback: (node: INode) => void, filter?: boolean): void;
6
+ export declare const traverse: (node: INode, callback: (node: INode) => void, filter?: boolean) => void;
8
7
  /** Reads an icon from the file system and returns its content. */
9
- export declare function readIcon(path: string, hash: string): string;
8
+ export declare const readIcon: (path: string, hash: string) => Promise<string>;
10
9
  /** Clones an icon and changes its colors according to the clone options. */
11
- export declare function cloneIcon(path: string, color: string, hash?: string): string;
10
+ export declare const cloneIcon: (path: string, color: string, hash?: string) => Promise<string>;
12
11
  /** Gets the style attribute of an SVG node if it exists. */
13
- export declare function getStyle(node: INode): Record<string, string>;
12
+ export declare const getStyle: (node: INode) => Record<string, string>;
14
13
  /** Converts object to css style string. */
15
- export declare function stringifyStyle(css: Record<string, string>): string;
14
+ export declare const stringifyStyle: (css: Record<string, string>) => string;
16
15
  /** Replaces colors in an SVG node using a replacement map. */
17
- export declare function replaceColors(node: INode, replacements: Map<string, string>): void;
16
+ export declare const replaceColors: (node: INode, replacements: Map<string, string>) => void;
18
17
  /** Creates a clone configuration with empty light object. */
19
- export declare function createCloneConfig(): Manifest;
18
+ export declare const createCloneConfig: () => import("../../../models/manifest").Manifest;
20
19
  //# sourceMappingURL=cloning.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cloning.d.ts","sourceRoot":"","sources":["../../../../../../src/core/generator/clones/utils/cloning.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,KAAK,EAAwB,MAAM,QAAQ,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGpD;;;GAGG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,KAAK,EACX,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,EAC/B,MAAM,UAAO,QASd;AAED,kEAAkE;AAClE,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAO3D;AAED,4EAA4E;AAC5E,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,SAAK,GAAG,MAAM,CAMxE;AAED,4DAA4D;AAC5D,wBAAgB,QAAQ,CAAC,IAAI,EAAE,KAAK,0BAKnC;AAaD,2CAA2C;AAC3C,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAIzD;AAED,8DAA8D;AAC9D,wBAAgB,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,QAoC3E;AAED,6DAA6D;AAC7D,wBAAgB,iBAAiB,aAUhC"}
1
+ {"version":3,"file":"cloning.d.ts","sourceRoot":"","sources":["../../../../../../src/core/generator/clones/utils/cloning.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,KAAK,EAAoB,MAAM,QAAQ,CAAC;AAItD;;;GAGG;AACH,eAAO,MAAM,QAAQ,SACb,KAAK,YACD,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,2BAUhC,CAAC;AAEF,kEAAkE;AAClE,eAAO,MAAM,QAAQ,SAAgB,MAAM,QAAQ,MAAM,KAAG,OAAO,CAAC,MAAM,CAOzE,CAAC;AAEF,4EAA4E;AAC5E,eAAO,MAAM,SAAS,SACd,MAAM,SACL,MAAM,oBAEZ,OAAO,CAAC,MAAM,CAMhB,CAAC;AAEF,4DAA4D;AAC5D,eAAO,MAAM,QAAQ,SAAU,KAAK,2BAKnC,CAAC;AAaF,2CAA2C;AAC3C,eAAO,MAAM,cAAc,QAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,WAIzD,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,aAAa,SAClB,KAAK,gBACG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,SAqClC,CAAC;AAEF,6DAA6D;AAC7D,eAAO,MAAM,iBAAiB,mDAU7B,CAAC"}