assistant-ui 0.0.92 → 0.0.94

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 (118) hide show
  1. package/dist/codemods/utils/createTransformer.d.ts +17 -13
  2. package/dist/codemods/utils/createTransformer.d.ts.map +1 -1
  3. package/dist/codemods/utils/createTransformer.js +18 -15
  4. package/dist/codemods/utils/createTransformer.js.map +1 -1
  5. package/dist/codemods/v0-11/content-part-to-message-part.d.ts +3 -1
  6. package/dist/codemods/v0-11/content-part-to-message-part.d.ts.map +1 -1
  7. package/dist/codemods/v0-11/content-part-to-message-part.js +98 -135
  8. package/dist/codemods/v0-11/content-part-to-message-part.js.map +1 -1
  9. package/dist/codemods/v0-12/assistant-api-to-aui.d.ts +3 -1
  10. package/dist/codemods/v0-12/assistant-api-to-aui.d.ts.map +1 -1
  11. package/dist/codemods/v0-12/assistant-api-to-aui.js +126 -213
  12. package/dist/codemods/v0-12/assistant-api-to-aui.js.map +1 -1
  13. package/dist/codemods/v0-12/event-names-to-camelcase.d.ts +3 -1
  14. package/dist/codemods/v0-12/event-names-to-camelcase.d.ts.map +1 -1
  15. package/dist/codemods/v0-12/event-names-to-camelcase.js +33 -38
  16. package/dist/codemods/v0-12/event-names-to-camelcase.js.map +1 -1
  17. package/dist/codemods/v0-12/primitive-if-to-aui-if.d.ts +3 -1
  18. package/dist/codemods/v0-12/primitive-if-to-aui-if.d.ts.map +1 -1
  19. package/dist/codemods/v0-12/primitive-if-to-aui-if.js +212 -297
  20. package/dist/codemods/v0-12/primitive-if-to-aui-if.js.map +1 -1
  21. package/dist/codemods/v0-8/ui-package-split.d.ts +3 -1
  22. package/dist/codemods/v0-8/ui-package-split.d.ts.map +1 -1
  23. package/dist/codemods/v0-8/ui-package-split.js +121 -164
  24. package/dist/codemods/v0-8/ui-package-split.js.map +1 -1
  25. package/dist/codemods/v0-9/edge-package-split.d.ts +3 -1
  26. package/dist/codemods/v0-9/edge-package-split.d.ts.map +1 -1
  27. package/dist/codemods/v0-9/edge-package-split.js +96 -140
  28. package/dist/codemods/v0-9/edge-package-split.js.map +1 -1
  29. package/dist/commands/add.d.ts +16 -12
  30. package/dist/commands/add.d.ts.map +1 -1
  31. package/dist/commands/add.js +53 -64
  32. package/dist/commands/add.js.map +1 -1
  33. package/dist/commands/agent.d.ts +5 -1
  34. package/dist/commands/agent.d.ts.map +1 -1
  35. package/dist/commands/agent.js +16 -25
  36. package/dist/commands/agent.js.map +1 -1
  37. package/dist/commands/create.d.ts +34 -30
  38. package/dist/commands/create.d.ts.map +1 -1
  39. package/dist/commands/create.js +446 -527
  40. package/dist/commands/create.js.map +1 -1
  41. package/dist/commands/info.d.ts +5 -1
  42. package/dist/commands/info.d.ts.map +1 -1
  43. package/dist/commands/info.js +233 -314
  44. package/dist/commands/info.js.map +1 -1
  45. package/dist/commands/init.d.ts +12 -9
  46. package/dist/commands/init.d.ts.map +1 -1
  47. package/dist/commands/init.js +98 -107
  48. package/dist/commands/init.js.map +1 -1
  49. package/dist/commands/mcp.d.ts +5 -1
  50. package/dist/commands/mcp.d.ts.map +1 -1
  51. package/dist/commands/mcp.js +175 -214
  52. package/dist/commands/mcp.js.map +1 -1
  53. package/dist/commands/update.d.ts +5 -1
  54. package/dist/commands/update.d.ts.map +1 -1
  55. package/dist/commands/update.js +46 -55
  56. package/dist/commands/update.js.map +1 -1
  57. package/dist/commands/upgrade.d.ts +11 -7
  58. package/dist/commands/upgrade.d.ts.map +1 -1
  59. package/dist/commands/upgrade.js +26 -38
  60. package/dist/commands/upgrade.js.map +1 -1
  61. package/dist/index.d.ts +1 -3
  62. package/dist/index.js +15 -14
  63. package/dist/index.js.map +1 -1
  64. package/dist/lib/create-project.d.ts +24 -21
  65. package/dist/lib/create-project.d.ts.map +1 -1
  66. package/dist/lib/create-project.js +227 -297
  67. package/dist/lib/create-project.js.map +1 -1
  68. package/dist/lib/install-ai-sdk-lib.d.ts +4 -1
  69. package/dist/lib/install-ai-sdk-lib.d.ts.map +1 -1
  70. package/dist/lib/install-ai-sdk-lib.js +12 -8
  71. package/dist/lib/install-ai-sdk-lib.js.map +1 -1
  72. package/dist/lib/install-edge-lib.d.ts +4 -1
  73. package/dist/lib/install-edge-lib.d.ts.map +1 -1
  74. package/dist/lib/install-edge-lib.js +16 -12
  75. package/dist/lib/install-edge-lib.js.map +1 -1
  76. package/dist/lib/install-ui-lib.d.ts +4 -1
  77. package/dist/lib/install-ui-lib.d.ts.map +1 -1
  78. package/dist/lib/install-ui-lib.js +12 -8
  79. package/dist/lib/install-ui-lib.js.map +1 -1
  80. package/dist/lib/run-spawn.d.ts +7 -4
  81. package/dist/lib/run-spawn.d.ts.map +1 -1
  82. package/dist/lib/run-spawn.js +23 -23
  83. package/dist/lib/run-spawn.js.map +1 -1
  84. package/dist/lib/transform-options.d.ts +8 -5
  85. package/dist/lib/transform-options.d.ts.map +1 -1
  86. package/dist/lib/transform-options.js +0 -2
  87. package/dist/lib/transform.d.ts +15 -11
  88. package/dist/lib/transform.d.ts.map +1 -1
  89. package/dist/lib/transform.js +97 -114
  90. package/dist/lib/transform.js.map +1 -1
  91. package/dist/lib/upgrade.d.ts +6 -2
  92. package/dist/lib/upgrade.d.ts.map +1 -1
  93. package/dist/lib/upgrade.js +62 -64
  94. package/dist/lib/upgrade.js.map +1 -1
  95. package/dist/lib/utils/config.d.ts +21 -18
  96. package/dist/lib/utils/config.d.ts.map +1 -1
  97. package/dist/lib/utils/config.js +24 -28
  98. package/dist/lib/utils/config.js.map +1 -1
  99. package/dist/lib/utils/file-scanner.d.ts +9 -6
  100. package/dist/lib/utils/file-scanner.d.ts.map +1 -1
  101. package/dist/lib/utils/file-scanner.js +44 -51
  102. package/dist/lib/utils/file-scanner.js.map +1 -1
  103. package/dist/lib/utils/logger.d.ts +10 -7
  104. package/dist/lib/utils/logger.d.ts.map +1 -1
  105. package/dist/lib/utils/logger.js +23 -19
  106. package/dist/lib/utils/logger.js.map +1 -1
  107. package/dist/lib/utils/package-installer.d.ts +10 -7
  108. package/dist/lib/utils/package-installer.d.ts.map +1 -1
  109. package/dist/lib/utils/package-installer.js +18 -19
  110. package/dist/lib/utils/package-installer.js.map +1 -1
  111. package/dist/lib/utils/package-manager.d.ts +10 -7
  112. package/dist/lib/utils/package-manager.d.ts.map +1 -1
  113. package/dist/lib/utils/package-manager.js +68 -59
  114. package/dist/lib/utils/package-manager.js.map +1 -1
  115. package/package.json +7 -7
  116. package/src/commands/create.ts +1 -9
  117. package/dist/index.d.ts.map +0 -1
  118. package/dist/lib/transform-options.js.map +0 -1
@@ -1,74 +1,72 @@
1
- import debug from "debug";
2
- import { transform, getRelevantFiles } from "./transform.js";
3
- import { SingleBar, Presets } from "cli-progress";
1
+ import { logger } from "./utils/logger.js";
2
+ import { getRelevantFiles, transform } from "./transform.js";
4
3
  import installReactUILib from "./install-ui-lib.js";
5
4
  import installEdgeLib from "./install-edge-lib.js";
6
5
  import installAiSdkLib from "./install-ai-sdk-lib.js";
7
- import { logger } from "./utils/logger.js";
6
+ import debug from "debug";
7
+ import { Presets, SingleBar } from "cli-progress";
8
+ //#region src/lib/upgrade.ts
8
9
  const bundle = [
9
- "v0-8/ui-package-split",
10
- "v0-9/edge-package-split",
11
- "v0-11/content-part-to-message-part",
12
- "v0-12/assistant-api-to-aui",
13
- "v0-12/event-names-to-camelcase",
14
- "v0-12/primitive-if-to-aui-if",
10
+ "v0-8/ui-package-split",
11
+ "v0-9/edge-package-split",
12
+ "v0-11/content-part-to-message-part",
13
+ "v0-12/assistant-api-to-aui",
14
+ "v0-12/event-names-to-camelcase",
15
+ "v0-12/primitive-if-to-aui-if"
15
16
  ];
16
17
  const log = debug("codemod:upgrade");
17
18
  const error = debug("codemod:upgrade:error");
18
19
  /**
19
- * Runs the upgrade cycle:
20
- * - Runs each codemod in the bundle.
21
- * - Displays progress using cli-progress.
22
- * - After codemods run, checks if any file now imports from the new packages and prompts for install.
23
- */
24
- export async function upgrade(options) {
25
- const cwd = process.cwd();
26
- log("Starting upgrade...");
27
- // Find relevant files once to avoid duplicate work
28
- logger.info("Analyzing codebase...");
29
- const relevantFiles = getRelevantFiles(cwd);
30
- const fileCount = relevantFiles.length;
31
- logger.info(`Found ${fileCount} files to process.`);
32
- // Calculate total work units (files × codemods)
33
- const totalWork = fileCount * bundle.length;
34
- let completedWork = 0;
35
- const bar = new SingleBar({
36
- format: "Progress |{bar}| {percentage}% | ETA: {eta}s || {status}",
37
- hideCursor: true,
38
- }, Presets.shades_classic);
39
- bar.start(totalWork, 0, { status: "Starting..." });
40
- const allErrors = [];
41
- for (const codemod of bundle) {
42
- bar.update(completedWork, { status: `Running ${codemod}...` });
43
- // Use a custom progress callback to update the progress bar
44
- const errors = transform(codemod, cwd, options, {
45
- logStatus: false,
46
- onProgress: (processedFiles) => {
47
- completedWork = bundle.indexOf(codemod) * fileCount + processedFiles;
48
- bar.update(Math.min(completedWork, totalWork), {
49
- status: `Running ${codemod} (${processedFiles}/${fileCount} files)`,
50
- });
51
- },
52
- relevantFiles, // Pass the pre-computed relevant files
53
- });
54
- allErrors.push(...errors);
55
- completedWork = (bundle.indexOf(codemod) + 1) * fileCount;
56
- bar.update(completedWork, { status: `Completed ${codemod}` });
57
- }
58
- bar.update(totalWork, { status: "Checking dependencies..." });
59
- bar.stop();
60
- if (allErrors.length > 0) {
61
- log("Some codemods did not apply successfully to all files. Details:");
62
- allErrors.forEach(({ transform, filename, summary }) => {
63
- error(`codemod=${transform}, path=${filename}, summary=${summary}`);
64
- });
65
- }
66
- // After codemods run, check if files import from the new packages and prompt for install.
67
- logger.info("Checking for package dependencies...");
68
- await installReactUILib();
69
- await installEdgeLib();
70
- await installAiSdkLib();
71
- log("Upgrade complete.");
72
- logger.success("Upgrade complete!");
20
+ * Runs the upgrade cycle:
21
+ * - Runs each codemod in the bundle.
22
+ * - Displays progress using cli-progress.
23
+ * - After codemods run, checks if any file now imports from the new packages and prompts for install.
24
+ */
25
+ async function upgrade(options) {
26
+ const cwd = process.cwd();
27
+ log("Starting upgrade...");
28
+ logger.info("Analyzing codebase...");
29
+ const relevantFiles = getRelevantFiles(cwd);
30
+ const fileCount = relevantFiles.length;
31
+ logger.info(`Found ${fileCount} files to process.`);
32
+ const totalWork = fileCount * bundle.length;
33
+ let completedWork = 0;
34
+ const bar = new SingleBar({
35
+ format: "Progress |{bar}| {percentage}% | ETA: {eta}s || {status}",
36
+ hideCursor: true
37
+ }, Presets.shades_classic);
38
+ bar.start(totalWork, 0, { status: "Starting..." });
39
+ const allErrors = [];
40
+ for (const codemod of bundle) {
41
+ bar.update(completedWork, { status: `Running ${codemod}...` });
42
+ const errors = transform(codemod, cwd, options, {
43
+ logStatus: false,
44
+ onProgress: (processedFiles) => {
45
+ completedWork = bundle.indexOf(codemod) * fileCount + processedFiles;
46
+ bar.update(Math.min(completedWork, totalWork), { status: `Running ${codemod} (${processedFiles}/${fileCount} files)` });
47
+ },
48
+ relevantFiles
49
+ });
50
+ allErrors.push(...errors);
51
+ completedWork = (bundle.indexOf(codemod) + 1) * fileCount;
52
+ bar.update(completedWork, { status: `Completed ${codemod}` });
53
+ }
54
+ bar.update(totalWork, { status: "Checking dependencies..." });
55
+ bar.stop();
56
+ if (allErrors.length > 0) {
57
+ log("Some codemods did not apply successfully to all files. Details:");
58
+ allErrors.forEach(({ transform, filename, summary }) => {
59
+ error(`codemod=${transform}, path=${filename}, summary=${summary}`);
60
+ });
61
+ }
62
+ logger.info("Checking for package dependencies...");
63
+ await installReactUILib();
64
+ await installEdgeLib();
65
+ await installAiSdkLib();
66
+ log("Upgrade complete.");
67
+ logger.success("Upgrade complete!");
73
68
  }
69
+ //#endregion
70
+ export { upgrade };
71
+
74
72
  //# sourceMappingURL=upgrade.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/lib/upgrade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upgrade.js","names":[],"sources":["../../src/lib/upgrade.ts"],"sourcesContent":["import debug from \"debug\";\nimport { transform, type TransformErrors, getRelevantFiles } from \"./transform\";\nimport type { TransformOptions } from \"./transform-options\";\nimport { SingleBar, Presets } from \"cli-progress\";\nimport installReactUILib from \"./install-ui-lib\";\nimport installEdgeLib from \"./install-edge-lib\";\nimport installAiSdkLib from \"./install-ai-sdk-lib\";\nimport { logger } from \"./utils/logger\";\n\nconst bundle = [\n \"v0-8/ui-package-split\",\n \"v0-9/edge-package-split\",\n \"v0-11/content-part-to-message-part\",\n \"v0-12/assistant-api-to-aui\",\n \"v0-12/event-names-to-camelcase\",\n \"v0-12/primitive-if-to-aui-if\",\n];\n\nconst log = debug(\"codemod:upgrade\");\nconst error = debug(\"codemod:upgrade:error\");\n\n/**\n * Runs the upgrade cycle:\n * - Runs each codemod in the bundle.\n * - Displays progress using cli-progress.\n * - After codemods run, checks if any file now imports from the new packages and prompts for install.\n */\nexport async function upgrade(options: TransformOptions) {\n const cwd = process.cwd();\n log(\"Starting upgrade...\");\n\n // Find relevant files once to avoid duplicate work\n logger.info(\"Analyzing codebase...\");\n const relevantFiles = getRelevantFiles(cwd);\n const fileCount = relevantFiles.length;\n logger.info(`Found ${fileCount} files to process.`);\n\n // Calculate total work units (files × codemods)\n const totalWork = fileCount * bundle.length;\n let completedWork = 0;\n\n const bar = new SingleBar(\n {\n format: \"Progress |{bar}| {percentage}% | ETA: {eta}s || {status}\",\n hideCursor: true,\n },\n Presets.shades_classic,\n );\n\n bar.start(totalWork, 0, { status: \"Starting...\" });\n const allErrors: TransformErrors = [];\n\n for (const codemod of bundle) {\n bar.update(completedWork, { status: `Running ${codemod}...` });\n\n // Use a custom progress callback to update the progress bar\n const errors = transform(codemod, cwd, options, {\n logStatus: false,\n onProgress: (processedFiles: number) => {\n completedWork = bundle.indexOf(codemod) * fileCount + processedFiles;\n bar.update(Math.min(completedWork, totalWork), {\n status: `Running ${codemod} (${processedFiles}/${fileCount} files)`,\n });\n },\n relevantFiles, // Pass the pre-computed relevant files\n });\n\n allErrors.push(...errors);\n completedWork = (bundle.indexOf(codemod) + 1) * fileCount;\n bar.update(completedWork, { status: `Completed ${codemod}` });\n }\n\n bar.update(totalWork, { status: \"Checking dependencies...\" });\n bar.stop();\n\n if (allErrors.length > 0) {\n log(\"Some codemods did not apply successfully to all files. Details:\");\n allErrors.forEach(({ transform, filename, summary }) => {\n error(`codemod=${transform}, path=${filename}, summary=${summary}`);\n });\n }\n\n // After codemods run, check if files import from the new packages and prompt for install.\n logger.info(\"Checking for package dependencies...\");\n await installReactUILib();\n await installEdgeLib();\n await installAiSdkLib();\n\n log(\"Upgrade complete.\");\n logger.success(\"Upgrade complete!\");\n}\n"],"mappings":";;;;;;;;AASA,MAAM,SAAS;CACb;CACA;CACA;CACA;CACA;CACA;AACF;AAEA,MAAM,MAAM,MAAM,iBAAiB;AACnC,MAAM,QAAQ,MAAM,uBAAuB;;;;;;;AAQ3C,eAAsB,QAAQ,SAA2B;CACvD,MAAM,MAAM,QAAQ,IAAI;CACxB,IAAI,qBAAqB;CAGzB,OAAO,KAAK,uBAAuB;CACnC,MAAM,gBAAgB,iBAAiB,GAAG;CAC1C,MAAM,YAAY,cAAc;CAChC,OAAO,KAAK,SAAS,UAAU,mBAAmB;CAGlD,MAAM,YAAY,YAAY,OAAO;CACrC,IAAI,gBAAgB;CAEpB,MAAM,MAAM,IAAI,UACd;EACE,QAAQ;EACR,YAAY;CACd,GACA,QAAQ,cACV;CAEA,IAAI,MAAM,WAAW,GAAG,EAAE,QAAQ,cAAc,CAAC;CACjD,MAAM,YAA6B,CAAC;CAEpC,KAAK,MAAM,WAAW,QAAQ;EAC5B,IAAI,OAAO,eAAe,EAAE,QAAQ,WAAW,QAAQ,KAAK,CAAC;EAG7D,MAAM,SAAS,UAAU,SAAS,KAAK,SAAS;GAC9C,WAAW;GACX,aAAa,mBAA2B;IACtC,gBAAgB,OAAO,QAAQ,OAAO,IAAI,YAAY;IACtD,IAAI,OAAO,KAAK,IAAI,eAAe,SAAS,GAAG,EAC7C,QAAQ,WAAW,QAAQ,IAAI,eAAe,GAAG,UAAU,SAC7D,CAAC;GACH;GACA;EACF,CAAC;EAED,UAAU,KAAK,GAAG,MAAM;EACxB,iBAAiB,OAAO,QAAQ,OAAO,IAAI,KAAK;EAChD,IAAI,OAAO,eAAe,EAAE,QAAQ,aAAa,UAAU,CAAC;CAC9D;CAEA,IAAI,OAAO,WAAW,EAAE,QAAQ,2BAA2B,CAAC;CAC5D,IAAI,KAAK;CAET,IAAI,UAAU,SAAS,GAAG;EACxB,IAAI,iEAAiE;EACrE,UAAU,SAAS,EAAE,WAAW,UAAU,cAAc;GACtD,MAAM,WAAW,UAAU,SAAS,SAAS,YAAY,SAAS;EACpE,CAAC;CACH;CAGA,OAAO,KAAK,sCAAsC;CAClD,MAAM,kBAAkB;CACxB,MAAM,eAAe;CACrB,MAAM,gBAAgB;CAEtB,IAAI,mBAAmB;CACvB,OAAO,QAAQ,mBAAmB;AACpC"}
@@ -1,20 +1,23 @@
1
- export interface AssistantUIConfig {
2
- $schema?: string;
3
- style?: string;
4
- tailwind?: {
5
- config?: string;
6
- css?: string;
7
- baseColor?: string;
8
- cssVariables?: boolean;
9
- };
10
- aliases?: {
11
- components?: string;
12
- utils?: string;
13
- ui?: string;
14
- lib?: string;
15
- };
1
+ //#region src/lib/utils/config.d.ts
2
+ interface AssistantUIConfig {
3
+ $schema?: string;
4
+ style?: string;
5
+ tailwind?: {
6
+ config?: string;
7
+ css?: string;
8
+ baseColor?: string;
9
+ cssVariables?: boolean;
10
+ };
11
+ aliases?: {
12
+ components?: string;
13
+ utils?: string;
14
+ ui?: string;
15
+ lib?: string;
16
+ };
16
17
  }
17
- export declare function getConfig(cwd?: string): AssistantUIConfig | null;
18
- export declare function saveConfig(config: AssistantUIConfig, cwd?: string): void;
19
- export declare function hasConfig(cwd?: string): boolean;
18
+ declare function getConfig(cwd?: string): AssistantUIConfig | null;
19
+ declare function saveConfig(config: AssistantUIConfig, cwd?: string): void;
20
+ declare function hasConfig(cwd?: string): boolean;
21
+ //#endregion
22
+ export { AssistantUIConfig, getConfig, hasConfig, saveConfig };
20
23
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE;QACT,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAOD,wBAAgB,SAAS,CACvB,GAAG,GAAE,MAAsB,GAC1B,iBAAiB,GAAG,IAAI,CAiB1B;AAED,wBAAgB,UAAU,CACxB,MAAM,EAAE,iBAAiB,EACzB,GAAG,GAAE,MAAsB,GAC1B,IAAI,CAGN;AAED,wBAAgB,SAAS,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAI9D"}
1
+ {"version":3,"file":"config.d.ts","names":[],"sources":["../../../src/lib/utils/config.ts"],"mappings":";UAIiB,iBAAA;EACf,OAAA;EACA,KAAA;EACA,QAAA;IACE,MAAA;IACA,GAAA;IACA,SAAA;IACA,YAAA;EAAA;EAEF,OAAA;IACE,UAAA;IACA,KAAA;IACA,EAAA;IACA,GAAA;EAAA;AAAA;AAAA,iBASY,SAAA,CACd,GAAA,YACC,iBAAiB;AAAA,iBAmBJ,UAAA,CACd,MAAA,EAAQ,iBAAiB,EACzB,GAAA;AAAA,iBAMc,SAAA,CAAU,GAA2B"}
@@ -1,33 +1,29 @@
1
- import * as fs from "node:fs";
2
- import * as path from "node:path";
3
1
  import { logger } from "./logger.js";
4
- const CONFIG_FILE_NAMES = [
5
- "assistant-ui.json",
6
- "components.json", // For backward compatibility with shadcn
7
- ];
8
- export function getConfig(cwd = process.cwd()) {
9
- for (const fileName of CONFIG_FILE_NAMES) {
10
- const configPath = path.join(cwd, fileName);
11
- if (fs.existsSync(configPath)) {
12
- try {
13
- const configContent = fs.readFileSync(configPath, "utf8");
14
- return JSON.parse(configContent);
15
- }
16
- catch (error) {
17
- const errorDetails = error instanceof Error
18
- ? (error.stack ?? error.message)
19
- : String(error);
20
- logger.error(`Error reading config file ${fileName}: ${errorDetails}`);
21
- }
22
- }
23
- }
24
- return null;
2
+ import * as fs$1 from "node:fs";
3
+ import * as path$1 from "node:path";
4
+ //#region src/lib/utils/config.ts
5
+ const CONFIG_FILE_NAMES = ["assistant-ui.json", "components.json"];
6
+ function getConfig(cwd = process.cwd()) {
7
+ for (const fileName of CONFIG_FILE_NAMES) {
8
+ const configPath = path$1.join(cwd, fileName);
9
+ if (fs$1.existsSync(configPath)) try {
10
+ const configContent = fs$1.readFileSync(configPath, "utf8");
11
+ return JSON.parse(configContent);
12
+ } catch (error) {
13
+ const errorDetails = error instanceof Error ? error.stack ?? error.message : String(error);
14
+ logger.error(`Error reading config file ${fileName}: ${errorDetails}`);
15
+ }
16
+ }
17
+ return null;
25
18
  }
26
- export function saveConfig(config, cwd = process.cwd()) {
27
- const configPath = path.join(cwd, "assistant-ui.json");
28
- fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
19
+ function saveConfig(config, cwd = process.cwd()) {
20
+ const configPath = path$1.join(cwd, "assistant-ui.json");
21
+ fs$1.writeFileSync(configPath, JSON.stringify(config, null, 2));
29
22
  }
30
- export function hasConfig(cwd = process.cwd()) {
31
- return CONFIG_FILE_NAMES.some((fileName) => fs.existsSync(path.join(cwd, fileName)));
23
+ function hasConfig(cwd = process.cwd()) {
24
+ return CONFIG_FILE_NAMES.some((fileName) => fs$1.existsSync(path$1.join(cwd, fileName)));
32
25
  }
26
+ //#endregion
27
+ export { getConfig, hasConfig, saveConfig };
28
+
33
29
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/lib/utils/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,oBAAiB;AAmBlC,MAAM,iBAAiB,GAAG;IACxB,mBAAmB;IACnB,iBAAiB,EAAE,yCAAyC;CAC7D,CAAC;AAEF,MAAM,UAAU,SAAS,CACvB,MAAc,OAAO,CAAC,GAAG,EAAE;IAE3B,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE,CAAC;QACzC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC5C,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBAC1D,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAsB,CAAC;YACxD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK;oBACpB,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC;oBAChC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACpB,MAAM,CAAC,KAAK,CAAC,6BAA6B,QAAQ,KAAK,YAAY,EAAE,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,MAAyB,EACzB,MAAc,OAAO,CAAC,GAAG,EAAE;IAE3B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;IACvD,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IACnD,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CACzC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CACxC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"config.js","names":["path","fs"],"sources":["../../../src/lib/utils/config.ts"],"sourcesContent":["import * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport { logger } from \"./logger\";\n\nexport interface AssistantUIConfig {\n $schema?: string;\n style?: string;\n tailwind?: {\n config?: string;\n css?: string;\n baseColor?: string;\n cssVariables?: boolean;\n };\n aliases?: {\n components?: string;\n utils?: string;\n ui?: string;\n lib?: string;\n };\n}\n\nconst CONFIG_FILE_NAMES = [\n \"assistant-ui.json\",\n \"components.json\", // For backward compatibility with shadcn\n];\n\nexport function getConfig(\n cwd: string = process.cwd(),\n): AssistantUIConfig | null {\n for (const fileName of CONFIG_FILE_NAMES) {\n const configPath = path.join(cwd, fileName);\n if (fs.existsSync(configPath)) {\n try {\n const configContent = fs.readFileSync(configPath, \"utf8\");\n return JSON.parse(configContent) as AssistantUIConfig;\n } catch (error) {\n const errorDetails =\n error instanceof Error\n ? (error.stack ?? error.message)\n : String(error);\n logger.error(`Error reading config file ${fileName}: ${errorDetails}`);\n }\n }\n }\n return null;\n}\n\nexport function saveConfig(\n config: AssistantUIConfig,\n cwd: string = process.cwd(),\n): void {\n const configPath = path.join(cwd, \"assistant-ui.json\");\n fs.writeFileSync(configPath, JSON.stringify(config, null, 2));\n}\n\nexport function hasConfig(cwd: string = process.cwd()): boolean {\n return CONFIG_FILE_NAMES.some((fileName) =>\n fs.existsSync(path.join(cwd, fileName)),\n );\n}\n"],"mappings":";;;;AAqBA,MAAM,oBAAoB,CACxB,qBACA,iBACF;AAEA,SAAgB,UACd,MAAc,QAAQ,IAAI,GACA;CAC1B,KAAK,MAAM,YAAY,mBAAmB;EACxC,MAAM,aAAaA,OAAK,KAAK,KAAK,QAAQ;EAC1C,IAAIC,KAAG,WAAW,UAAU,GAC1B,IAAI;GACF,MAAM,gBAAgBA,KAAG,aAAa,YAAY,MAAM;GACxD,OAAO,KAAK,MAAM,aAAa;EACjC,SAAS,OAAO;GACd,MAAM,eACJ,iBAAiB,QACZ,MAAM,SAAS,MAAM,UACtB,OAAO,KAAK;GAClB,OAAO,MAAM,6BAA6B,SAAS,IAAI,cAAc;EACvE;CAEJ;CACA,OAAO;AACT;AAEA,SAAgB,WACd,QACA,MAAc,QAAQ,IAAI,GACpB;CACN,MAAM,aAAaD,OAAK,KAAK,KAAK,mBAAmB;CACrD,KAAG,cAAc,YAAY,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;AAC9D;AAEA,SAAgB,UAAU,MAAc,QAAQ,IAAI,GAAY;CAC9D,OAAO,kBAAkB,MAAM,aAC7BC,KAAG,WAAWD,OAAK,KAAK,KAAK,QAAQ,CAAC,CACxC;AACF"}
@@ -1,8 +1,11 @@
1
- export interface ScanOptions {
2
- cwd?: string;
3
- pattern?: string;
4
- ignore?: string[];
1
+ //#region src/lib/utils/file-scanner.d.ts
2
+ interface ScanOptions {
3
+ cwd?: string;
4
+ pattern?: string;
5
+ ignore?: string[];
5
6
  }
6
- export declare function scanForImport(importPattern: string | string[], options?: ScanOptions): boolean;
7
- export declare function getFilesContaining(searchString: string, options?: ScanOptions): string[];
7
+ declare function scanForImport(importPattern: string | string[], options?: ScanOptions): boolean;
8
+ declare function getFilesContaining(searchString: string, options?: ScanOptions): string[];
9
+ //#endregion
10
+ export { ScanOptions, getFilesContaining, scanForImport };
8
11
  //# sourceMappingURL=file-scanner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-scanner.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/file-scanner.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,wBAAgB,aAAa,CAC3B,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE,EAChC,OAAO,GAAE,WAAgB,GACxB,OAAO,CA2BT;AAED,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,WAAgB,GACxB,MAAM,EAAE,CAyBV"}
1
+ {"version":3,"file":"file-scanner.d.ts","names":[],"sources":["../../../src/lib/utils/file-scanner.ts"],"mappings":";UAIiB,WAAA;EACf,GAAA;EACA,OAAA;EACA,MAAA;AAAA;AAAA,iBAGc,aAAA,CACd,aAAA,qBACA,OAAA,GAAS,WAAgB;AAAA,iBA8BX,kBAAA,CACd,YAAA,UACA,OAAA,GAAS,WAAgB"}
@@ -1,54 +1,47 @@
1
- import * as fs from "node:fs";
2
- import * as path from "node:path";
3
- import { sync as globSync } from "glob";
4
- export function scanForImport(importPattern, options = {}) {
5
- const cwd = options.cwd || process.cwd();
6
- const pattern = options.pattern || "**/*.{js,jsx,ts,tsx}";
7
- const ignore = options.ignore || [
8
- "**/node_modules/**",
9
- "**/dist/**",
10
- "**/build/**",
11
- ];
12
- const files = globSync(pattern, { cwd, ignore });
13
- const patterns = Array.isArray(importPattern)
14
- ? importPattern
15
- : [importPattern];
16
- for (const file of files) {
17
- const fullPath = path.join(cwd, file);
18
- try {
19
- const content = fs.readFileSync(fullPath, "utf8");
20
- if (patterns.some((p) => content.includes(p))) {
21
- return true;
22
- }
23
- }
24
- catch {
25
- // Ignore files that cannot be read
26
- }
27
- }
28
- return false;
1
+ import * as fs$1 from "node:fs";
2
+ import * as path$1 from "node:path";
3
+ import { sync } from "glob";
4
+ //#region src/lib/utils/file-scanner.ts
5
+ function scanForImport(importPattern, options = {}) {
6
+ const cwd = options.cwd || process.cwd();
7
+ const files = sync(options.pattern || "**/*.{js,jsx,ts,tsx}", {
8
+ cwd,
9
+ ignore: options.ignore || [
10
+ "**/node_modules/**",
11
+ "**/dist/**",
12
+ "**/build/**"
13
+ ]
14
+ });
15
+ const patterns = Array.isArray(importPattern) ? importPattern : [importPattern];
16
+ for (const file of files) {
17
+ const fullPath = path$1.join(cwd, file);
18
+ try {
19
+ const content = fs$1.readFileSync(fullPath, "utf8");
20
+ if (patterns.some((p) => content.includes(p))) return true;
21
+ } catch {}
22
+ }
23
+ return false;
29
24
  }
30
- export function getFilesContaining(searchString, options = {}) {
31
- const cwd = options.cwd || process.cwd();
32
- const pattern = options.pattern || "**/*.{js,jsx,ts,tsx}";
33
- const ignore = options.ignore || [
34
- "**/node_modules/**",
35
- "**/dist/**",
36
- "**/build/**",
37
- ];
38
- const files = globSync(pattern, { cwd, ignore });
39
- const result = [];
40
- for (const file of files) {
41
- const fullPath = path.join(cwd, file);
42
- try {
43
- const content = fs.readFileSync(fullPath, "utf8");
44
- if (content.includes(searchString)) {
45
- result.push(fullPath);
46
- }
47
- }
48
- catch {
49
- // Ignore files that cannot be read
50
- }
51
- }
52
- return result;
25
+ function getFilesContaining(searchString, options = {}) {
26
+ const cwd = options.cwd || process.cwd();
27
+ const files = sync(options.pattern || "**/*.{js,jsx,ts,tsx}", {
28
+ cwd,
29
+ ignore: options.ignore || [
30
+ "**/node_modules/**",
31
+ "**/dist/**",
32
+ "**/build/**"
33
+ ]
34
+ });
35
+ const result = [];
36
+ for (const file of files) {
37
+ const fullPath = path$1.join(cwd, file);
38
+ try {
39
+ if (fs$1.readFileSync(fullPath, "utf8").includes(searchString)) result.push(fullPath);
40
+ } catch {}
41
+ }
42
+ return result;
53
43
  }
44
+ //#endregion
45
+ export { getFilesContaining, scanForImport };
46
+
54
47
  //# sourceMappingURL=file-scanner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-scanner.js","sourceRoot":"","sources":["../../../src/lib/utils/file-scanner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,MAAM,CAAC;AAQxC,MAAM,UAAU,aAAa,CAC3B,aAAgC,EAChC,UAAuB,EAAE;IAEzB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,sBAAsB,CAAC;IAC1D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI;QAC/B,oBAAoB;QACpB,YAAY;QACZ,aAAa;KACd,CAAC;IAEF,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;QAC3C,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IAEpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAClD,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9C,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,mCAAmC;QACrC,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,YAAoB,EACpB,UAAuB,EAAE;IAEzB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,sBAAsB,CAAC;IAC1D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI;QAC/B,oBAAoB;QACpB,YAAY;QACZ,aAAa;KACd,CAAC;IAEF,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IACjD,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAClD,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBACnC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,mCAAmC;QACrC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"file-scanner.js","names":["globSync","path","fs"],"sources":["../../../src/lib/utils/file-scanner.ts"],"sourcesContent":["import * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport { sync as globSync } from \"glob\";\n\nexport interface ScanOptions {\n cwd?: string;\n pattern?: string;\n ignore?: string[];\n}\n\nexport function scanForImport(\n importPattern: string | string[],\n options: ScanOptions = {},\n): boolean {\n const cwd = options.cwd || process.cwd();\n const pattern = options.pattern || \"**/*.{js,jsx,ts,tsx}\";\n const ignore = options.ignore || [\n \"**/node_modules/**\",\n \"**/dist/**\",\n \"**/build/**\",\n ];\n\n const files = globSync(pattern, { cwd, ignore });\n const patterns = Array.isArray(importPattern)\n ? importPattern\n : [importPattern];\n\n for (const file of files) {\n const fullPath = path.join(cwd, file);\n try {\n const content = fs.readFileSync(fullPath, \"utf8\");\n if (patterns.some((p) => content.includes(p))) {\n return true;\n }\n } catch {\n // Ignore files that cannot be read\n }\n }\n\n return false;\n}\n\nexport function getFilesContaining(\n searchString: string,\n options: ScanOptions = {},\n): string[] {\n const cwd = options.cwd || process.cwd();\n const pattern = options.pattern || \"**/*.{js,jsx,ts,tsx}\";\n const ignore = options.ignore || [\n \"**/node_modules/**\",\n \"**/dist/**\",\n \"**/build/**\",\n ];\n\n const files = globSync(pattern, { cwd, ignore });\n const result: string[] = [];\n\n for (const file of files) {\n const fullPath = path.join(cwd, file);\n try {\n const content = fs.readFileSync(fullPath, \"utf8\");\n if (content.includes(searchString)) {\n result.push(fullPath);\n }\n } catch {\n // Ignore files that cannot be read\n }\n }\n\n return result;\n}\n"],"mappings":";;;;AAUA,SAAgB,cACd,eACA,UAAuB,CAAC,GACf;CACT,MAAM,MAAM,QAAQ,OAAO,QAAQ,IAAI;CAQvC,MAAM,QAAQA,KAPE,QAAQ,WAAW,wBAOH;EAAE;EAAK,QANxB,QAAQ,UAAU;GAC/B;GACA;GACA;EACF;CAE8C,CAAC;CAC/C,MAAM,WAAW,MAAM,QAAQ,aAAa,IACxC,gBACA,CAAC,aAAa;CAElB,KAAK,MAAM,QAAQ,OAAO;EACxB,MAAM,WAAWC,OAAK,KAAK,KAAK,IAAI;EACpC,IAAI;GACF,MAAM,UAAUC,KAAG,aAAa,UAAU,MAAM;GAChD,IAAI,SAAS,MAAM,MAAM,QAAQ,SAAS,CAAC,CAAC,GAC1C,OAAO;EAEX,QAAQ,CAER;CACF;CAEA,OAAO;AACT;AAEA,SAAgB,mBACd,cACA,UAAuB,CAAC,GACd;CACV,MAAM,MAAM,QAAQ,OAAO,QAAQ,IAAI;CAQvC,MAAM,QAAQF,KAPE,QAAQ,WAAW,wBAOH;EAAE;EAAK,QANxB,QAAQ,UAAU;GAC/B;GACA;GACA;EACF;CAE8C,CAAC;CAC/C,MAAM,SAAmB,CAAC;CAE1B,KAAK,MAAM,QAAQ,OAAO;EACxB,MAAM,WAAWC,OAAK,KAAK,KAAK,IAAI;EACpC,IAAI;GAEF,IADgBC,KAAG,aAAa,UAAU,MAChC,EAAE,SAAS,YAAY,GAC/B,OAAO,KAAK,QAAQ;EAExB,QAAQ,CAER;CACF;CAEA,OAAO;AACT"}
@@ -1,9 +1,12 @@
1
- export declare const logger: {
2
- info: (message: string) => void;
3
- success: (message: string) => void;
4
- error: (message: string) => void;
5
- warn: (message: string) => void;
6
- step: (message: string) => void;
7
- break: () => void;
1
+ //#region src/lib/utils/logger.d.ts
2
+ declare const logger: {
3
+ info: (message: string) => void;
4
+ success: (message: string) => void;
5
+ error: (message: string) => void;
6
+ warn: (message: string) => void;
7
+ step: (message: string) => void;
8
+ break: () => void;
8
9
  };
10
+ //#endregion
11
+ export { logger };
9
12
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/logger.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM;oBACD,MAAM;uBAGH,MAAM;qBAGR,MAAM;oBAGP,MAAM;oBAGN,MAAM;;CAMvB,CAAC"}
1
+ {"version":3,"file":"logger.d.ts","names":[],"sources":["../../../src/lib/utils/logger.ts"],"mappings":";cAEa,MAAA"}
@@ -1,22 +1,26 @@
1
1
  import chalk from "chalk";
2
- export const logger = {
3
- info: (message) => {
4
- console.log(chalk.blue(message));
5
- },
6
- success: (message) => {
7
- console.log(chalk.green(`✓ ${message}`));
8
- },
9
- error: (message) => {
10
- console.error(chalk.red(`✗ ${message}`));
11
- },
12
- warn: (message) => {
13
- console.log(chalk.yellow(`⚠ ${message}`));
14
- },
15
- step: (message) => {
16
- console.log(chalk.cyan(`→ ${message}`));
17
- },
18
- break: () => {
19
- console.log("");
20
- },
2
+ //#region src/lib/utils/logger.ts
3
+ const logger = {
4
+ info: (message) => {
5
+ console.log(chalk.blue(message));
6
+ },
7
+ success: (message) => {
8
+ console.log(chalk.green(`✓ ${message}`));
9
+ },
10
+ error: (message) => {
11
+ console.error(chalk.red(`✗ ${message}`));
12
+ },
13
+ warn: (message) => {
14
+ console.log(chalk.yellow(`⚠ ${message}`));
15
+ },
16
+ step: (message) => {
17
+ console.log(chalk.cyan(`→ ${message}`));
18
+ },
19
+ break: () => {
20
+ console.log("");
21
+ }
21
22
  };
23
+ //#endregion
24
+ export { logger };
25
+
22
26
  //# sourceMappingURL=logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/lib/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE,CAAC,OAAe,EAAE,EAAE;QACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,EAAE,CAAC,OAAe,EAAE,EAAE;QAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,KAAK,EAAE,CAAC,OAAe,EAAE,EAAE;QACzB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,EAAE,CAAC,OAAe,EAAE,EAAE;QACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,EAAE,CAAC,OAAe,EAAE,EAAE;QACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,KAAK,EAAE,GAAG,EAAE;QACV,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"logger.js","names":[],"sources":["../../../src/lib/utils/logger.ts"],"sourcesContent":["import chalk from \"chalk\";\n\nexport const logger = {\n info: (message: string) => {\n console.log(chalk.blue(message));\n },\n success: (message: string) => {\n console.log(chalk.green(`✓ ${message}`));\n },\n error: (message: string) => {\n console.error(chalk.red(`✗ ${message}`));\n },\n warn: (message: string) => {\n console.log(chalk.yellow(`⚠ ${message}`));\n },\n step: (message: string) => {\n console.log(chalk.cyan(`→ ${message}`));\n },\n break: () => {\n console.log(\"\");\n },\n};\n"],"mappings":";;AAEA,MAAa,SAAS;CACpB,OAAO,YAAoB;EACzB,QAAQ,IAAI,MAAM,KAAK,OAAO,CAAC;CACjC;CACA,UAAU,YAAoB;EAC5B,QAAQ,IAAI,MAAM,MAAM,KAAK,SAAS,CAAC;CACzC;CACA,QAAQ,YAAoB;EAC1B,QAAQ,MAAM,MAAM,IAAI,KAAK,SAAS,CAAC;CACzC;CACA,OAAO,YAAoB;EACzB,QAAQ,IAAI,MAAM,OAAO,KAAK,SAAS,CAAC;CAC1C;CACA,OAAO,YAAoB;EACzB,QAAQ,IAAI,MAAM,KAAK,KAAK,SAAS,CAAC;CACxC;CACA,aAAa;EACX,QAAQ,IAAI,EAAE;CAChB;AACF"}
@@ -1,9 +1,12 @@
1
- export interface PackageInstallConfig {
2
- packageName: string;
3
- importPatterns: string[];
4
- promptMessage: string;
5
- skipMessage: string;
6
- notFoundMessage: string;
1
+ //#region src/lib/utils/package-installer.d.ts
2
+ interface PackageInstallConfig {
3
+ packageName: string;
4
+ importPatterns: string[];
5
+ promptMessage: string;
6
+ skipMessage: string;
7
+ notFoundMessage: string;
7
8
  }
8
- export declare function installPackageIfNeeded(config: PackageInstallConfig): Promise<void>;
9
+ declare function installPackageIfNeeded(config: PackageInstallConfig): Promise<void>;
10
+ //#endregion
11
+ export { PackageInstallConfig, installPackageIfNeeded };
9
12
  //# sourceMappingURL=package-installer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"package-installer.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/package-installer.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAmBf"}
1
+ {"version":3,"file":"package-installer.d.ts","names":[],"sources":["../../../src/lib/utils/package-installer.ts"],"mappings":";UAQiB,oBAAA;EACf,WAAA;EACA,cAAA;EACA,aAAA;EACA,WAAA;EACA,eAAA;AAAA;AAAA,iBAGoB,sBAAA,CACpB,MAAA,EAAQ,oBAAA,GACP,OAAO"}
@@ -1,22 +1,21 @@
1
- import { scanForImport } from "./file-scanner.js";
2
- import { isPackageInstalled, askQuestion, installPackage, } from "./package-manager.js";
3
1
  import { logger } from "./logger.js";
4
- export async function installPackageIfNeeded(config) {
5
- const found = scanForImport(config.importPatterns);
6
- if (!found) {
7
- logger.info(config.notFoundMessage);
8
- return;
9
- }
10
- if (isPackageInstalled(config.packageName)) {
11
- logger.info(config.skipMessage);
12
- return;
13
- }
14
- const answer = await askQuestion(config.promptMessage);
15
- if (answer === "" || answer.toLowerCase().startsWith("y")) {
16
- await installPackage(config.packageName);
17
- }
18
- else {
19
- logger.info("Skipping installation.");
20
- }
2
+ import { scanForImport } from "./file-scanner.js";
3
+ import { askQuestion, installPackage, isPackageInstalled } from "./package-manager.js";
4
+ //#region src/lib/utils/package-installer.ts
5
+ async function installPackageIfNeeded(config) {
6
+ if (!scanForImport(config.importPatterns)) {
7
+ logger.info(config.notFoundMessage);
8
+ return;
9
+ }
10
+ if (isPackageInstalled(config.packageName)) {
11
+ logger.info(config.skipMessage);
12
+ return;
13
+ }
14
+ const answer = await askQuestion(config.promptMessage);
15
+ if (answer === "" || answer.toLowerCase().startsWith("y")) await installPackage(config.packageName);
16
+ else logger.info("Skipping installation.");
21
17
  }
18
+ //#endregion
19
+ export { installPackageIfNeeded };
20
+
22
21
  //# sourceMappingURL=package-installer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"package-installer.js","sourceRoot":"","sources":["../../../src/lib/utils/package-installer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,0BAAuB;AAC/C,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,cAAc,GACf,6BAA0B;AAC3B,OAAO,EAAE,MAAM,EAAE,oBAAiB;AAUlC,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAA4B;IAE5B,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAEnD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACpC,OAAO;IACT,CAAC;IAED,IAAI,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAChC,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACvD,IAAI,MAAM,KAAK,EAAE,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1D,MAAM,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACxC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"package-installer.js","names":[],"sources":["../../../src/lib/utils/package-installer.ts"],"sourcesContent":["import { scanForImport } from \"./file-scanner\";\nimport {\n isPackageInstalled,\n askQuestion,\n installPackage,\n} from \"./package-manager\";\nimport { logger } from \"./logger\";\n\nexport interface PackageInstallConfig {\n packageName: string;\n importPatterns: string[];\n promptMessage: string;\n skipMessage: string;\n notFoundMessage: string;\n}\n\nexport async function installPackageIfNeeded(\n config: PackageInstallConfig,\n): Promise<void> {\n const found = scanForImport(config.importPatterns);\n\n if (!found) {\n logger.info(config.notFoundMessage);\n return;\n }\n\n if (isPackageInstalled(config.packageName)) {\n logger.info(config.skipMessage);\n return;\n }\n\n const answer = await askQuestion(config.promptMessage);\n if (answer === \"\" || answer.toLowerCase().startsWith(\"y\")) {\n await installPackage(config.packageName);\n } else {\n logger.info(\"Skipping installation.\");\n }\n}\n"],"mappings":";;;;AAgBA,eAAsB,uBACpB,QACe;CAGf,IAAI,CAFU,cAAc,OAAO,cAE1B,GAAG;EACV,OAAO,KAAK,OAAO,eAAe;EAClC;CACF;CAEA,IAAI,mBAAmB,OAAO,WAAW,GAAG;EAC1C,OAAO,KAAK,OAAO,WAAW;EAC9B;CACF;CAEA,MAAM,SAAS,MAAM,YAAY,OAAO,aAAa;CACrD,IAAI,WAAW,MAAM,OAAO,YAAY,EAAE,WAAW,GAAG,GACtD,MAAM,eAAe,OAAO,WAAW;MAEvC,OAAO,KAAK,wBAAwB;AAExC"}