assets-toolkit 1.0.0 → 1.0.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.
Files changed (79) hide show
  1. package/dist/config.d.ts +1 -1
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.js +14 -10
  4. package/dist/config.js.map +1 -1
  5. package/dist/constants.d.ts +5 -1
  6. package/dist/constants.d.ts.map +1 -1
  7. package/dist/constants.js +48 -2
  8. package/dist/constants.js.map +1 -1
  9. package/dist/helps/assetSupport.d.ts +6 -0
  10. package/dist/helps/assetSupport.d.ts.map +1 -0
  11. package/dist/helps/assetSupport.js +104 -0
  12. package/dist/helps/assetSupport.js.map +1 -0
  13. package/dist/helps/checkDuplicates.d.ts +5 -0
  14. package/dist/helps/checkDuplicates.d.ts.map +1 -0
  15. package/dist/helps/checkDuplicates.js +16 -0
  16. package/dist/helps/checkDuplicates.js.map +1 -0
  17. package/dist/helps/checkFileValidations.d.ts +5 -1
  18. package/dist/helps/checkFileValidations.d.ts.map +1 -1
  19. package/dist/helps/checkFileValidations.js +30 -15
  20. package/dist/helps/checkFileValidations.js.map +1 -1
  21. package/dist/helps/logger.d.ts +3 -8
  22. package/dist/helps/logger.d.ts.map +1 -1
  23. package/dist/helps/logger.js +7 -11
  24. package/dist/helps/logger.js.map +1 -1
  25. package/dist/helps/normalizeAssetExtensions.d.ts +3 -0
  26. package/dist/helps/normalizeAssetExtensions.d.ts.map +1 -0
  27. package/dist/helps/normalizeAssetExtensions.js +35 -0
  28. package/dist/helps/normalizeAssetExtensions.js.map +1 -0
  29. package/dist/helps/webAssetResolver.d.ts +2 -0
  30. package/dist/helps/webAssetResolver.d.ts.map +1 -0
  31. package/dist/helps/webAssetResolver.js +38 -0
  32. package/dist/helps/webAssetResolver.js.map +1 -0
  33. package/dist/{generator.d.ts → rn-assets.d.ts} +3 -1
  34. package/dist/rn-assets.d.ts.map +1 -0
  35. package/dist/rn-assets.js +321 -0
  36. package/dist/rn-assets.js.map +1 -0
  37. package/dist/toolkits/doctor.d.ts.map +1 -1
  38. package/dist/toolkits/doctor.js +11 -59
  39. package/dist/toolkits/doctor.js.map +1 -1
  40. package/dist/toolkits/doctorFix.d.ts.map +1 -1
  41. package/dist/toolkits/doctorFix.js +15 -27
  42. package/dist/toolkits/doctorFix.js.map +1 -1
  43. package/dist/toolkits/generator.d.ts.map +1 -1
  44. package/dist/toolkits/generator.js +52 -70
  45. package/dist/toolkits/generator.js.map +1 -1
  46. package/dist/toolkits/reports.d.ts.map +1 -1
  47. package/dist/toolkits/reports.js +19 -4
  48. package/dist/toolkits/reports.js.map +1 -1
  49. package/dist/types.d.ts +27 -0
  50. package/dist/types.d.ts.map +1 -1
  51. package/dist/writers/index.d.ts.map +1 -1
  52. package/dist/writers/index.js +7 -5
  53. package/dist/writers/index.js.map +1 -1
  54. package/dist/writers/react-native.js +1 -1
  55. package/dist/writers/react-native.js.map +1 -1
  56. package/package.json +30 -4
  57. package/dist/cacheHelper.d.ts +0 -2
  58. package/dist/cacheHelper.d.ts.map +0 -1
  59. package/dist/cacheHelper.js +0 -2
  60. package/dist/cacheHelper.js.map +0 -1
  61. package/dist/config-types.d.ts +0 -2
  62. package/dist/config-types.d.ts.map +0 -1
  63. package/dist/config-types.js +0 -2
  64. package/dist/config-types.js.map +0 -1
  65. package/dist/generator.d.ts.map +0 -1
  66. package/dist/generator.js +0 -170
  67. package/dist/generator.js.map +0 -1
  68. package/dist/helps/checkInvalidFileNames.d.ts +0 -2
  69. package/dist/helps/checkInvalidFileNames.d.ts.map +0 -1
  70. package/dist/helps/checkInvalidFileNames.js +0 -23
  71. package/dist/helps/checkInvalidFileNames.js.map +0 -1
  72. package/dist/helps/incrementalHash.d.ts +0 -3
  73. package/dist/helps/incrementalHash.d.ts.map +0 -1
  74. package/dist/helps/incrementalHash.js +0 -8
  75. package/dist/helps/incrementalHash.js.map +0 -1
  76. package/dist/helps/normalizeFiles.d.ts +0 -2
  77. package/dist/helps/normalizeFiles.d.ts.map +0 -1
  78. package/dist/helps/normalizeFiles.js +0 -2
  79. package/dist/helps/normalizeFiles.js.map +0 -1
package/dist/config.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { AssetsToolkitConfig } from "./types.js";
2
- export declare const defaultConfig: Required<AssetsToolkitConfig>;
2
+ export declare function getDefaultConfig(root: string): Required<AssetsToolkitConfig>;
3
3
  export declare function createDefaultConfig(root: string): void;
4
4
  export declare function loadConfig(root: string): AssetsToolkitConfig;
5
5
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAMtD,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,mBAAmB,CAKvD,CAAC;AAMF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAStD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAgC5D"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAKtD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,mBAAmB,CAAC,CAQ5E;AAMD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAUtD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAiC5D"}
package/dist/config.js CHANGED
@@ -2,13 +2,16 @@ import fs from "fs";
2
2
  import path from "path";
3
3
  import { ensureGitIgnore } from "./helps/gitignore.js";
4
4
  import { colorText } from "./colorConsole.js";
5
- const CONFIG_FILE = "assets-toolkit.config.json";
6
- export const defaultConfig = {
7
- assets: ["./src/assets", "./assets"],
8
- output: "generated-assets",
9
- target: "auto",
10
- duplicates: "ignore",
11
- };
5
+ import { CONFIG_FILE } from "./constants.js";
6
+ export function getDefaultConfig(root) {
7
+ const hasSrcFolder = fs.existsSync(path.join(root, "src"));
8
+ return {
9
+ assets: ["./src/assets", "./assets"],
10
+ output: hasSrcFolder ? "src/generated-assets" : "generated-assets",
11
+ target: "auto",
12
+ duplicates: "ignore",
13
+ };
14
+ }
12
15
  function getConfigPath(root) {
13
16
  return path.join(root, CONFIG_FILE);
14
17
  }
@@ -17,13 +20,14 @@ export function createDefaultConfig(root) {
17
20
  if (fs.existsSync(configPath)) {
18
21
  return;
19
22
  }
23
+ const defaultConfig = getDefaultConfig(root);
20
24
  fs.writeFileSync(configPath, JSON.stringify(defaultConfig, null, 2), "utf8");
21
25
  ensureGitIgnore(root);
22
26
  console.log(colorText("success", "✓ Created assets-toolkit.config.json"));
23
27
  }
24
28
  export function loadConfig(root) {
25
29
  const configPath = getConfigPath(root);
26
- // First run
30
+ const defaultConfig = getDefaultConfig(root);
27
31
  if (!fs.existsSync(configPath)) {
28
32
  createDefaultConfig(root);
29
33
  return defaultConfig;
@@ -31,7 +35,7 @@ export function loadConfig(root) {
31
35
  try {
32
36
  const content = fs.readFileSync(configPath, "utf8");
33
37
  const userConfig = JSON.parse(content);
34
- updateConfigWithDefaults(configPath, userConfig);
38
+ updateConfigWithDefaults(configPath, userConfig, defaultConfig);
35
39
  const config = {
36
40
  ...defaultConfig,
37
41
  ...userConfig,
@@ -67,7 +71,7 @@ function validateConfig(config) {
67
71
  throw new Error(`Invalid duplicates option "${config.duplicates}"`);
68
72
  }
69
73
  }
70
- function updateConfigWithDefaults(configPath, userConfig) {
74
+ function updateConfigWithDefaults(configPath, userConfig, defaultConfig) {
71
75
  const mergedConfig = {
72
76
  ...defaultConfig,
73
77
  ...userConfig,
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,16 @@
1
1
  import type { AssetCategory } from "./types.js";
2
+ import type { Target } from "./types.js";
2
3
  export declare const categoryExtensions: Record<AssetCategory, string[]>;
3
4
  export declare const SUPPORTED_EXTENSIONS: Set<string>;
5
+ export declare const TARGET_SUPPORTED_EXTENSIONS: Record<Target, Partial<Record<AssetCategory, string[]>>>;
4
6
  export declare const VALID_FILE_NAME: RegExp;
5
7
  export declare const INVALID_FILE_NAME_REASONS: {
6
8
  readonly EMPTY: "Empty filename";
7
9
  readonly ONLY_UNDERSCORES: "Filename contains only underscores";
8
- readonly STARTS_WITH_NUMBER: "Filename starts with a number";
10
+ readonly STARTS_WITH_NUMBER: "Filename starts with number";
9
11
  readonly INVALID_CHARACTERS: "Filename contains invalid characters";
10
12
  readonly UPPERCASE_EXTENSION: "Uppercase extension";
13
+ readonly UNSUPPORTED_EXTENSION: "Unsupported file extension";
11
14
  };
15
+ export declare const CONFIG_FILE = "assets-toolkit.config.json";
12
16
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,CAyC9D,CAAC;AAEF,eAAO,MAAM,oBAAoB,aAEhC,CAAC;AAEF,eAAO,MAAM,eAAe,QAC0B,CAAC;AAEvD,eAAO,MAAM,yBAAyB;aACpC,KAAK,EAAE,gBAAgB;aACvB,gBAAgB,EAAE,oCAAoC;aACtD,kBAAkB,EAAE,+BAA+B;aACnD,kBAAkB,EAAE,sCAAsC;aAC1D,mBAAmB,EAAE,qBAAqB;CAClC,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAIzC,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,CAyC9D,CAAC;AAEF,eAAO,MAAM,oBAAoB,aAEhC,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAC9C,MAAM,EACN,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC,CAgDzC,CAAC;AAEF,eAAO,MAAM,eAAe,QAC0B,CAAC;AAEvD,eAAO,MAAM,yBAAyB;aACpC,KAAK,EAAE,gBAAgB;aACvB,gBAAgB,EAAE,oCAAoC;aACtD,kBAAkB,EAAE,6BAA6B;aACjD,kBAAkB,EAAE,sCAAsC;aAC1D,mBAAmB,EAAE,qBAAqB;aAC1C,qBAAqB,EAAE,4BAA4B;CAC3C,CAAC;AAEX,eAAO,MAAM,WAAW,+BAA+B,CAAC"}
package/dist/constants.js CHANGED
@@ -1,3 +1,4 @@
1
+ const LOTTIE_EXTENSIONS = [".json", ".lottie"];
1
2
  export const categoryExtensions = {
2
3
  images: [
3
4
  ".png",
@@ -38,15 +39,60 @@ export const categoryExtensions = {
38
39
  ".mpeg",
39
40
  ".mpg",
40
41
  ],
41
- lottie: [".lottie"],
42
+ lottie: LOTTIE_EXTENSIONS,
42
43
  };
43
44
  export const SUPPORTED_EXTENSIONS = new Set(Object.values(categoryExtensions).flat());
45
+ export const TARGET_SUPPORTED_EXTENSIONS = {
46
+ "react-native": {
47
+ images: [".png", ".jpg", ".jpeg", ".webp"],
48
+ video: [".mp4", ".mov"],
49
+ audio: [".mp3", ".wav"],
50
+ svg: [".svg"],
51
+ fonts: [".ttf", ".otf"],
52
+ lottie: LOTTIE_EXTENSIONS,
53
+ },
54
+ expo: {
55
+ images: [".png", ".jpg", ".jpeg", ".webp"],
56
+ video: [".mp4", ".mov"],
57
+ audio: [".mp3", ".wav"],
58
+ svg: [".svg"],
59
+ fonts: [".ttf", ".otf"],
60
+ lottie: LOTTIE_EXTENSIONS,
61
+ },
62
+ react: {
63
+ images: [".png", ".jpg", ".jpeg", ".webp", ".avif"],
64
+ video: [".mp4", ".webm"],
65
+ audio: [".mp3", ".wav", ".ogg"],
66
+ svg: [".svg"],
67
+ fonts: [".ttf", ".otf", ".woff", ".woff2"],
68
+ lottie: LOTTIE_EXTENSIONS,
69
+ },
70
+ next: {
71
+ images: [".png", ".jpg", ".jpeg", ".webp", ".avif"],
72
+ video: [".mp4", ".webm"],
73
+ audio: [".mp3", ".wav", ".ogg"],
74
+ svg: [".svg"],
75
+ fonts: [".ttf", ".otf", ".woff", ".woff2"],
76
+ lottie: LOTTIE_EXTENSIONS,
77
+ },
78
+ vite: {
79
+ images: [".png", ".jpg", ".jpeg", ".webp", ".avif"],
80
+ video: [".mp4", ".webm"],
81
+ audio: [".mp3", ".wav", ".ogg"],
82
+ svg: [".svg"],
83
+ fonts: [".ttf", ".otf", ".woff", ".woff2"],
84
+ lottie: LOTTIE_EXTENSIONS,
85
+ },
86
+ unknown: {},
87
+ };
44
88
  export const VALID_FILE_NAME = /^[A-Za-z0-9_][A-Za-z0-9_-]*(?:@[1-9](?:\.\d+)?x)?$/;
45
89
  export const INVALID_FILE_NAME_REASONS = {
46
90
  EMPTY: "Empty filename",
47
91
  ONLY_UNDERSCORES: "Filename contains only underscores",
48
- STARTS_WITH_NUMBER: "Filename starts with a number",
92
+ STARTS_WITH_NUMBER: "Filename starts with number",
49
93
  INVALID_CHARACTERS: "Filename contains invalid characters",
50
94
  UPPERCASE_EXTENSION: "Uppercase extension",
95
+ UNSUPPORTED_EXTENSION: "Unsupported file extension",
51
96
  };
97
+ export const CONFIG_FILE = "assets-toolkit.config.json";
52
98
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kBAAkB,GAAoC;IACjE,MAAM,EAAE;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,MAAM;QACN,MAAM;KACP;IACD,GAAG,EAAE,CAAC,MAAM,CAAC;IACb,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC;IAC1C,KAAK,EAAE;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;KACR;IACD,KAAK,EAAE;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,MAAM;KACP;IACD,MAAM,EAAE,CAAC,SAAS,CAAC;CACpB,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,GAAG,CACzC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE,CACzC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAC1B,oDAAoD,CAAC;AAEvD,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,KAAK,EAAE,gBAAgB;IACvB,gBAAgB,EAAE,oCAAoC;IACtD,kBAAkB,EAAE,+BAA+B;IACnD,kBAAkB,EAAE,sCAAsC;IAC1D,mBAAmB,EAAE,qBAAqB;CAClC,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { AssetAnalysis, AssetCategory, Target } from "../types.js";
2
+ export declare function isAssetSupported(filePath: string, category: AssetCategory, target: Target): boolean;
3
+ export declare function getUnsupportedReason(file: string, category: AssetCategory, target: Target): string | undefined;
4
+ export declare function shouldSkipAsset(file: string, target: Target): boolean;
5
+ export declare function analyzeAssets(files: string[], target: Target): AssetAnalysis;
6
+ //# sourceMappingURL=assetSupport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assetSupport.d.ts","sourceRoot":"","sources":["../../src/helps/assetSupport.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAQxE,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,MAAM,GACb,OAAO,CAUT;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,MAAM,GACb,MAAM,GAAG,SAAS,CAUpB;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CASrE;AACD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAkG5E"}
@@ -0,0 +1,104 @@
1
+ import path from "path";
2
+ import { TARGET_SUPPORTED_EXTENSIONS } from "../constants.js";
3
+ import { getCategory } from "../toolkits/generator.js";
4
+ import { getAssetValidationSummary, getDuplicateAssetGroups, } from "./checkFileValidations.js";
5
+ export function isAssetSupported(filePath, category, target) {
6
+ const extension = path.extname(filePath).toLowerCase();
7
+ const supportedExtensions = TARGET_SUPPORTED_EXTENSIONS[target][category];
8
+ if (!supportedExtensions) {
9
+ return true;
10
+ }
11
+ return supportedExtensions.includes(extension);
12
+ }
13
+ export function getUnsupportedReason(file, category, target) {
14
+ const ext = path.extname(file).toLowerCase();
15
+ const allowed = TARGET_SUPPORTED_EXTENSIONS[target]?.[category] ?? [];
16
+ if (!allowed.includes(ext)) {
17
+ return `${ext} is not supported by ${target}`;
18
+ }
19
+ return undefined;
20
+ }
21
+ export function shouldSkipAsset(file, target) {
22
+ if (target !== "react-native" && target !== "expo") {
23
+ return false;
24
+ }
25
+ const ext = path.extname(file);
26
+ const name = path.basename(file, ext);
27
+ return /@[2-9](\.\d+)?x$/i.test(name);
28
+ }
29
+ export function analyzeAssets(files, target) {
30
+ const supported = [];
31
+ const skipped = [];
32
+ const unsupported = [];
33
+ const invalid = [];
34
+ const duplicates = [];
35
+ const { invalidAssets } = getAssetValidationSummary(files);
36
+ const invalidMap = new Map(invalidAssets.map((asset) => [asset.file, asset.reason]));
37
+ const duplicateGroups = getDuplicateAssetGroups(files);
38
+ const duplicateMap = new Map();
39
+ for (const group of duplicateGroups) {
40
+ const original = group[0];
41
+ if (!original)
42
+ continue;
43
+ group.slice(1).forEach((duplicate) => {
44
+ duplicateMap.set(duplicate, original);
45
+ });
46
+ }
47
+ for (const file of files) {
48
+ // 1. Invalid asset
49
+ const invalidReason = invalidMap.get(file);
50
+ if (invalidReason) {
51
+ invalid.push({
52
+ file,
53
+ reason: invalidReason,
54
+ });
55
+ continue;
56
+ }
57
+ // 2. React Native / Expo scale variants
58
+ if (shouldSkipAsset(file, target)) {
59
+ skipped.push({
60
+ file,
61
+ reason: "Image scale variant",
62
+ });
63
+ continue;
64
+ }
65
+ // 3. Detect category
66
+ const category = getCategory(file);
67
+ if (!category) {
68
+ unsupported.push({
69
+ file,
70
+ reason: "Unsupported file extension",
71
+ });
72
+ continue;
73
+ }
74
+ // 4. Platform support
75
+ const unsupportedReason = getUnsupportedReason(file, category, target);
76
+ if (unsupportedReason) {
77
+ unsupported.push({
78
+ file,
79
+ reason: unsupportedReason,
80
+ });
81
+ continue;
82
+ }
83
+ // 5. Duplicate handling
84
+ const duplicateOf = duplicateMap.get(file);
85
+ if (duplicateOf) {
86
+ duplicates.push({
87
+ file,
88
+ duplicateOf,
89
+ });
90
+ continue;
91
+ }
92
+ // 6. Valid asset
93
+ supported.push(file);
94
+ }
95
+ return {
96
+ discovered: files,
97
+ supported,
98
+ skipped,
99
+ unsupported,
100
+ invalid,
101
+ duplicates,
102
+ };
103
+ }
104
+ //# sourceMappingURL=assetSupport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assetSupport.js","sourceRoot":"","sources":["../../src/helps/assetSupport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare function checkDuplicates(duplicates: {
2
+ file: string;
3
+ duplicateOf: string;
4
+ }[], results: string[], root: string): void;
5
+ //# sourceMappingURL=checkDuplicates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkDuplicates.d.ts","sourceRoot":"","sources":["../../src/helps/checkDuplicates.ts"],"names":[],"mappings":"AAGA,wBAAgB,eAAe,CAC7B,UAAU,EAAE;IACV,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB,EAAE,EACH,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,EAAE,MAAM,QAqBb"}
@@ -0,0 +1,16 @@
1
+ import { colorText } from "../colorConsole.js";
2
+ import { getProjectRelativePath } from "../util.js";
3
+ export function checkDuplicates(duplicates, results, root) {
4
+ if (duplicates.length === 0) {
5
+ results.push(colorText("success", "\n✓ No duplicate assets"));
6
+ return;
7
+ }
8
+ results.push("");
9
+ results.push(colorText("warning", "⚠ Duplicate Assets"));
10
+ results.push(colorText("muted", "--------------------"));
11
+ for (const duplicate of duplicates) {
12
+ results.push(` ↳ ${getProjectRelativePath(duplicate.file, root)}`);
13
+ results.push(colorText("muted", ` Duplicate of: ${getProjectRelativePath(duplicate.duplicateOf, root)}`));
14
+ }
15
+ }
16
+ //# sourceMappingURL=checkDuplicates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkDuplicates.js","sourceRoot":"","sources":["../../src/helps/checkDuplicates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,UAAU,eAAe,CAC7B,UAGG,EACH,OAAiB,EACjB,IAAY;IAEZ,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC,CAAC;QAC9D,OAAO;IACT,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC,CAAC;IACzD,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAEzD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,OAAO,sBAAsB,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAEpE,OAAO,CAAC,IAAI,CACV,SAAS,CACP,OAAO,EACP,sBAAsB,sBAAsB,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAC5E,CACF,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1,7 +1,11 @@
1
1
  import type { InvalidFile } from "../writers/types.js";
2
2
  import type { AssetWarning, InvalidAsset } from "../types.js";
3
3
  export declare function getDuplicateAssetGroups(files: string[]): string[][];
4
- export declare function checkInvalidFileNames(root: string, files: string[], results: string[]): InvalidFile[];
4
+ export declare function addUnsupportedAssets(assets: {
5
+ file: string;
6
+ reason: string;
7
+ }[], root: string, results?: string[]): void;
8
+ export declare function addInvalidAssets(assets: InvalidAsset[], root: string, results: string[]): void;
5
9
  export declare function getAssetValidationSummary(files: string[]): {
6
10
  invalidAssets: InvalidAsset[];
7
11
  warnings: AssetWarning[];
@@ -1 +1 @@
1
- {"version":3,"file":"checkFileValidations.d.ts","sourceRoot":"","sources":["../../src/helps/checkFileValidations.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIvD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAyB9D,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,CAwBnE;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,EAAE,MAAM,EAAE,GAChB,WAAW,EAAE,CAqBf;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;IAC1D,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B,CAwBA;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAsC9D;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;EAiCjD"}
1
+ {"version":3,"file":"checkFileValidations.d.ts","sourceRoot":"","sources":["../../src/helps/checkFileValidations.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIvD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAyB9D,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,CAyBnE;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE;IACN,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,EAAE,EACH,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,EAAE,QAwBnB;AACD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,YAAY,EAAE,EACtB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EAAE,QAoBlB;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;IAC1D,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B,CAwBA;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAsC9D;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;EAiCjD"}
@@ -40,22 +40,36 @@ export function getDuplicateAssetGroups(files) {
40
40
  return a.localeCompare(b);
41
41
  }));
42
42
  }
43
- export function checkInvalidFileNames(root, files, results) {
44
- const invalidFiles = getInvalidFiles(files);
45
- if (invalidFiles.length === 0) {
46
- results.push(colorText("success", "\n✓ No invalid filenames\n"));
47
- return invalidFiles;
43
+ export function addUnsupportedAssets(assets, root, results) {
44
+ if (assets.length === 0)
45
+ return;
46
+ const lines = [];
47
+ lines.push("");
48
+ lines.push(colorText("warning", "⚠ Unsupported Assets"));
49
+ lines.push(colorText("warning", "---------------------"));
50
+ for (const asset of assets) {
51
+ lines.push(`↳ ${getProjectRelativePath(asset.file, root)} ⚠ ${asset.reason}`);
48
52
  }
49
- results.push("");
50
- results.push("⚠ Invalid Filenames");
51
- results.push("-------------------");
52
- for (const file of invalidFiles) {
53
- results.push(getProjectRelativePath(file.oldPath, root));
53
+ if (results) {
54
+ results.push(...lines);
55
+ return;
54
56
  }
57
+ lines.forEach((line) => {
58
+ console.log(line);
59
+ });
60
+ }
61
+ export function addInvalidAssets(assets, root, results) {
62
+ if (assets.length === 0)
63
+ return;
55
64
  results.push("");
56
- results.push(pc.yellow("To fix filename and duplicate issues, run:"));
65
+ results.push(colorText("warning", "⚠ Invalid File Names"));
66
+ results.push(colorText("muted", "--------------------"));
67
+ assets.forEach(({ file, reason }) => {
68
+ results.push(`${getProjectRelativePath(file, root)} ${colorText("warning", `⚠ ${reason}`)}`);
69
+ });
70
+ results.push("");
71
+ results.push(pc.yellow("To fix filename issues, run:"));
57
72
  results.push(` ${pc.cyan("assets-toolkit doctor --fix")}`);
58
- return invalidFiles;
59
73
  }
60
74
  export function getAssetValidationSummary(files) {
61
75
  const invalidAssets = [];
@@ -103,8 +117,9 @@ export function getInvalidFiles(files) {
103
117
  return invalidFiles;
104
118
  }
105
119
  export function validateAssetFileName(file) {
106
- const ext = path.extname(file);
107
- const name = path.basename(file, ext);
120
+ const originalExt = path.extname(file);
121
+ const ext = originalExt.toLowerCase();
122
+ const name = path.basename(file, originalExt);
108
123
  if (name.length === 0) {
109
124
  return {
110
125
  valid: false,
@@ -123,7 +138,7 @@ export function validateAssetFileName(file) {
123
138
  reason: INVALID_FILE_NAME_REASONS.INVALID_CHARACTERS,
124
139
  };
125
140
  }
126
- if (ext !== ext.toLowerCase()) {
141
+ if (originalExt !== ext) {
127
142
  return {
128
143
  valid: true,
129
144
  warning: INVALID_FILE_NAME_REASONS.UPPERCASE_EXTENSION,
@@ -1 +1 @@
1
- {"version":3,"file":"checkFileValidations.js","sourceRoot":"","sources":["../../src/helps/checkFileValidations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checkFileValidations.js","sourceRoot":"","sources":["../../src/helps/checkFileValidations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG3D,SAAS,qBAAqB,CAAC,IAAY;IACzC,OAAO,IAAI;SACR,IAAI,EAAE;SACN,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC;SAChC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAY;IAC5C,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAE/C,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACtB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QACvB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAe;IACrD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;IAE3C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAE7C,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;SACxB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;SACnC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACb,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAClB,MAAM,aAAa,GACjB,wBAAwB,CAAC,CAAC,CAAC,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAAC;QAE5D,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,CACH,CAAC;AACN,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,MAGG,EACH,IAAY,EACZ,OAAkB;IAElB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEhC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC,CAAC;IACzD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAE1D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CACR,KAAK,sBAAsB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,KAAK,CAAC,MAAM,EAAE,CAClE,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QACvB,OAAO;IACT,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACrB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;AACL,CAAC;AACD,MAAM,UAAU,gBAAgB,CAC9B,MAAsB,EACtB,IAAY,EACZ,OAAiB;IAEjB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEhC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAC3D,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAEzD,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;QAClC,OAAO,CAAC,IAAI,CACV,GAAG,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,SAAS,CAChD,SAAS,EACT,KAAK,MAAM,EAAE,CACd,EAAE,CACJ,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,CAAC;IACxD,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,6BAA6B,CAAC,EAAE,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAe;IAIvD,MAAM,aAAa,GAAmB,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAmB,EAAE,CAAC;IAEpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAE/C,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACtB,aAAa,CAAC,IAAI,CAAC;gBACjB,IAAI;gBACJ,MAAM,EAAE,UAAU,CAAC,MAAO;aAC3B,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACvB,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI;gBACJ,MAAM,EAAE,UAAU,CAAC,OAAO;aAC3B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAe;IAC7C,MAAM,YAAY,GAAkB,EAAE,CAAC;IACvC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IAExC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAE/C,IAAI,UAAU,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC5C,SAAS;QACX,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAEnD,IAAI,cAAc,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAEjD,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,cAAc,GAAG,OAAO,CAAC;QAC3B,CAAC;QAED,cAAc,GAAG,qBAAqB,CAAC,cAAc,CAAC,CAAC;QAEvD,MAAM,cAAc,GAAG,iBAAiB,CACtC,SAAS,EACT,cAAc,IAAI,OAAO,EACzB,SAAS,EACT,aAAa,CACd,CAAC;QAEF,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAElC,YAAY,CAAC,IAAI,CAAC;YAChB,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC;SAC9C,CAAC,CAAC;IACL,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;IACtC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAE9C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,yBAAyB,CAAC,KAAK;SACxC,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,yBAAyB,CAAC,gBAAgB;SACnD,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,yBAAyB,CAAC,kBAAkB;SACrD,CAAC;IACJ,CAAC;IACD,IAAI,WAAW,KAAK,GAAG,EAAE,CAAC;QACxB,OAAO;YACL,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,yBAAyB,CAAC,mBAAmB;SACvD,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC"}
@@ -1,9 +1,4 @@
1
- import type { AssetWarning, InvalidAsset } from "../types.js";
2
- export declare function printGenerateSummary(params: {
3
- target: string;
4
- outputDir: string;
5
- totalAssets: number;
6
- categoryOutput: string;
7
- }): void;
8
- export declare function printInvalidFiles(root: string, invalidAssets: InvalidAsset[], warnings: AssetWarning[]): void;
1
+ import type { GenerateSummaryType, InvalidAsset } from "../types.js";
2
+ export declare function printGenerateSummary(params: GenerateSummaryType): void;
3
+ export declare function printInvalidAssets(invalidAssets: InvalidAsset[], root: string): void;
9
4
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/helps/logger.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG9D,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB,QAgBA;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,YAAY,EAAE,EAC7B,QAAQ,EAAE,YAAY,EAAE,QAsBzB"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/helps/logger.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGrE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,QAgB/D;AAED,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,YAAY,EAAE,EAC7B,IAAI,EAAE,MAAM,QAeb"}
@@ -14,17 +14,13 @@ ${params.categoryOutput}
14
14
  ${colorText("info", `${"Total".padEnd(12)}${params.totalAssets.toString().padStart(5)}`)}
15
15
  `);
16
16
  }
17
- export function printInvalidFiles(root, invalidAssets, warnings) {
18
- if (invalidAssets.length > 0) {
19
- console.log(colorText("title", "\nInvalid asset names:"));
20
- console.log(colorText("muted", "--------------------"));
21
- for (const asset of invalidAssets) {
22
- console.log(colorText("warning", `\nSkipped (${asset.reason})`));
23
- console.log(colorText("muted", ` ↳ ${getProjectRelativePath(asset.file, root)}`));
24
- }
25
- }
26
- if (invalidAssets.length > 0 || warnings.length > 0) {
27
- console.log(colorText("info", '\nRename these files and run "assets-toolkit generate" again.\n'));
17
+ export function printInvalidAssets(invalidAssets, root) {
18
+ if (invalidAssets.length === 0)
19
+ return;
20
+ console.log(colorText("title", "\nInvalid Assets:"));
21
+ console.log(colorText("muted", "------------------"));
22
+ for (const asset of invalidAssets) {
23
+ console.log(`${colorText("muted", `↳ ${getProjectRelativePath(asset.file, root)}`.padEnd(55))} ${colorText("warning", `⚠ ${asset.reason}`)}`);
28
24
  }
29
25
  }
30
26
  //# sourceMappingURL=logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/helps/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,UAAU,oBAAoB,CAAC,MAKpC;IACC,OAAO,CAAC,GAAG,CAAC;EACZ,SAAS,CAAC,OAAO,EAAE,gBAAgB,CAAC;EACpC,SAAS,CAAC,OAAO,EAAE,iBAAiB,CAAC;EACrC,SAAS,CAAC,SAAS,EAAE,aAAa,MAAM,CAAC,MAAM,EAAE,CAAC;EAClD,SAAS,CAAC,SAAS,EAAE,gBAAgB,MAAM,CAAC,SAAS,EAAE,CAAC;;EAExD,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC;EAC3B,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC;EAC5B,MAAM,CAAC,cAAc;;EAErB,SAAS,CACT,MAAM,EACN,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CACpE;CACA,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,IAAY,EACZ,aAA6B,EAC7B,QAAwB;IAExB,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC;QAExD,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,cAAc,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACjE,OAAO,CAAC,GAAG,CACT,SAAS,CAAC,OAAO,EAAE,OAAO,sBAAsB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CACtE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,OAAO,CAAC,GAAG,CACT,SAAS,CACP,MAAM,EACN,iEAAiE,CAClE,CACF,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/helps/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,UAAU,oBAAoB,CAAC,MAA2B;IAC9D,OAAO,CAAC,GAAG,CAAC;EACZ,SAAS,CAAC,OAAO,EAAE,gBAAgB,CAAC;EACpC,SAAS,CAAC,OAAO,EAAE,iBAAiB,CAAC;EACrC,SAAS,CAAC,SAAS,EAAE,aAAa,MAAM,CAAC,MAAM,EAAE,CAAC;EAClD,SAAS,CAAC,SAAS,EAAE,gBAAgB,MAAM,CAAC,SAAS,EAAE,CAAC;;EAExD,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC;EAC3B,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC;EAC5B,MAAM,CAAC,cAAc;;EAErB,SAAS,CACT,MAAM,EACN,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CACpE;CACA,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,aAA6B,EAC7B,IAAY;IAEZ,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEvC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAEtD,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CACT,GAAG,SAAS,CACV,OAAO,EACP,KAAK,sBAAsB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAC3D,IAAI,SAAS,CAAC,SAAS,EAAE,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,CACjD,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Target } from "../types.js";
2
+ export declare function normalizeSupportedExtensions(files: string[], target: Target): string[];
3
+ //# sourceMappingURL=normalizeAssetExtensions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalizeAssetExtensions.d.ts","sourceRoot":"","sources":["../../src/helps/normalizeAssetExtensions.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAiB,MAAM,EAAE,MAAM,aAAa,CAAC;AAEzD,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,MAAM,EAAE,EACf,MAAM,EAAE,MAAM,GACb,MAAM,EAAE,CA+CV"}
@@ -0,0 +1,35 @@
1
+ import fs from "fs";
2
+ import path from "path";
3
+ import { TARGET_SUPPORTED_EXTENSIONS } from "../constants.js";
4
+ export function normalizeSupportedExtensions(files, target) {
5
+ return files.map((file) => {
6
+ const ext = path.extname(file);
7
+ const lowerExt = ext.toLowerCase();
8
+ if (ext === lowerExt) {
9
+ return file;
10
+ }
11
+ const category = Object.keys(TARGET_SUPPORTED_EXTENSIONS[target]).find((key) => {
12
+ const extensions = TARGET_SUPPORTED_EXTENSIONS[target][key];
13
+ return extensions?.includes(lowerExt);
14
+ });
15
+ console.log("file:", file);
16
+ console.log("category:", category);
17
+ if (!category) {
18
+ return file;
19
+ }
20
+ const newPath = path.join(path.dirname(file), `${path.basename(file, ext)}${lowerExt}`);
21
+ if (file.toLowerCase() === newPath.toLowerCase()) {
22
+ const tempPath = `${file}.temp`;
23
+ fs.renameSync(file, tempPath);
24
+ fs.renameSync(tempPath, newPath);
25
+ return newPath;
26
+ }
27
+ if (fs.existsSync(newPath)) {
28
+ return file;
29
+ }
30
+ fs.renameSync(file, newPath);
31
+ console.log(`✓ Renamed ${file} → ${newPath}`);
32
+ return newPath;
33
+ });
34
+ }
35
+ //# sourceMappingURL=normalizeAssetExtensions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalizeAssetExtensions.js","sourceRoot":"","sources":["../../src/helps/normalizeAssetExtensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAG9D,MAAM,UAAU,4BAA4B,CAC1C,KAAe,EACf,MAAc;IAEd,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAEnC,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CACpE,CAAC,GAAG,EAAE,EAAE;YACN,MAAM,UAAU,GACd,2BAA2B,CAAC,MAAM,CAAC,CAAC,GAAoB,CAAC,CAAC;YAE5D,OAAO,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC,CACF,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAEnC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CACvB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAClB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,QAAQ,EAAE,CACzC,CAAC;QACF,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;YACjD,MAAM,QAAQ,GAAG,GAAG,IAAI,OAAO,CAAC;YAEhC,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC9B,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAEjC,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAE7B,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,MAAM,OAAO,EAAE,CAAC,CAAC;QAE9C,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function resolveWebAssetDirectory(root: string, assetDirectories: string[]): string[];
2
+ //# sourceMappingURL=webAssetResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webAssetResolver.d.ts","sourceRoot":"","sources":["../../src/helps/webAssetResolver.ts"],"names":[],"mappings":"AAGA,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,EAAE,GACzB,MAAM,EAAE,CA0BV"}
@@ -0,0 +1,38 @@
1
+ import fs from "fs";
2
+ import path from "path";
3
+ export function resolveWebAssetDirectory(root, assetDirectories) {
4
+ const srcDir = path.join(root, "src");
5
+ // no src folder, keep existing assets
6
+ if (!fs.existsSync(srcDir)) {
7
+ return assetDirectories;
8
+ }
9
+ const newDirectories = [];
10
+ for (const assetDir of assetDirectories) {
11
+ const relative = path.relative(root, assetDir);
12
+ const newAssetDir = path.join(srcDir, relative);
13
+ if (assetDir === newAssetDir) {
14
+ newDirectories.push(assetDir);
15
+ continue;
16
+ }
17
+ copyDirectory(assetDir, newAssetDir);
18
+ newDirectories.push(newAssetDir);
19
+ }
20
+ return newDirectories;
21
+ }
22
+ function copyDirectory(source, destination) {
23
+ fs.mkdirSync(destination, { recursive: true });
24
+ const files = fs.readdirSync(source, {
25
+ withFileTypes: true,
26
+ });
27
+ for (const file of files) {
28
+ const src = path.join(source, file.name);
29
+ const dest = path.join(destination, file.name);
30
+ if (file.isDirectory()) {
31
+ copyDirectory(src, dest);
32
+ }
33
+ else {
34
+ fs.copyFileSync(src, dest);
35
+ }
36
+ }
37
+ }
38
+ //# sourceMappingURL=webAssetResolver.js.map