aliasmate 1.6.1 → 2.0.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 (203) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/README.md +61 -876
  3. package/dist/cli/completion.d.ts +5 -0
  4. package/dist/cli/completion.d.ts.map +1 -0
  5. package/dist/cli/completion.js +144 -0
  6. package/dist/cli/completion.js.map +1 -0
  7. package/dist/cli/manage.d.ts +20 -0
  8. package/dist/cli/manage.d.ts.map +1 -0
  9. package/dist/cli/manage.js +213 -0
  10. package/dist/cli/manage.js.map +1 -0
  11. package/dist/cli/run.d.ts +6 -0
  12. package/dist/cli/run.d.ts.map +1 -0
  13. package/dist/cli/run.js +46 -0
  14. package/dist/cli/run.js.map +1 -0
  15. package/dist/cli/save.d.ts +9 -0
  16. package/dist/cli/save.d.ts.map +1 -0
  17. package/dist/cli/save.js +52 -0
  18. package/dist/cli/save.js.map +1 -0
  19. package/dist/cli/transfer.d.ts +5 -0
  20. package/dist/cli/transfer.d.ts.map +1 -0
  21. package/dist/cli/transfer.js +118 -0
  22. package/dist/cli/transfer.js.map +1 -0
  23. package/dist/core/commands.d.ts +27 -0
  24. package/dist/core/commands.d.ts.map +1 -0
  25. package/dist/core/commands.js +194 -0
  26. package/dist/core/commands.js.map +1 -0
  27. package/dist/core/env.d.ts +9 -0
  28. package/dist/core/env.d.ts.map +1 -0
  29. package/dist/core/env.js +45 -0
  30. package/dist/core/env.js.map +1 -0
  31. package/dist/core/executor.d.ts +7 -0
  32. package/dist/core/executor.d.ts.map +1 -0
  33. package/dist/{utils → core}/executor.js +10 -46
  34. package/dist/core/executor.js.map +1 -0
  35. package/dist/core/history.d.ts +11 -0
  36. package/dist/core/history.d.ts.map +1 -0
  37. package/dist/core/history.js +117 -0
  38. package/dist/core/history.js.map +1 -0
  39. package/dist/core/recent.d.ts +14 -0
  40. package/dist/core/recent.d.ts.map +1 -0
  41. package/dist/core/recent.js +54 -0
  42. package/dist/core/recent.js.map +1 -0
  43. package/dist/core/runner.d.ts +13 -0
  44. package/dist/core/runner.d.ts.map +1 -0
  45. package/dist/core/runner.js +83 -0
  46. package/dist/core/runner.js.map +1 -0
  47. package/dist/core/store.d.ts +29 -0
  48. package/dist/core/store.d.ts.map +1 -0
  49. package/dist/core/store.js +131 -0
  50. package/dist/core/store.js.map +1 -0
  51. package/dist/core/types.d.ts +29 -0
  52. package/dist/core/types.d.ts.map +1 -0
  53. package/dist/core/types.js +3 -0
  54. package/dist/core/types.js.map +1 -0
  55. package/dist/core/validate.d.ts +6 -0
  56. package/dist/core/validate.d.ts.map +1 -0
  57. package/dist/core/validate.js +139 -0
  58. package/dist/core/validate.js.map +1 -0
  59. package/dist/index.d.ts +3 -0
  60. package/dist/index.d.ts.map +1 -0
  61. package/dist/index.js +169 -0
  62. package/dist/index.js.map +1 -0
  63. package/dist/ui/format.d.ts +16 -0
  64. package/dist/ui/format.d.ts.map +1 -0
  65. package/dist/ui/format.js +112 -0
  66. package/dist/ui/format.js.map +1 -0
  67. package/dist/ui/interactive.d.ts +6 -0
  68. package/dist/ui/interactive.d.ts.map +1 -0
  69. package/dist/ui/interactive.js +147 -0
  70. package/dist/ui/interactive.js.map +1 -0
  71. package/dist/ui/onboarding.d.ts +3 -0
  72. package/dist/ui/onboarding.d.ts.map +1 -0
  73. package/dist/ui/onboarding.js +82 -0
  74. package/dist/ui/onboarding.js.map +1 -0
  75. package/dist/ui/prompts.d.ts +14 -0
  76. package/dist/ui/prompts.d.ts.map +1 -0
  77. package/dist/ui/prompts.js +96 -0
  78. package/dist/ui/prompts.js.map +1 -0
  79. package/dist/ui/theme.d.ts +28 -0
  80. package/dist/ui/theme.d.ts.map +1 -0
  81. package/dist/ui/theme.js +43 -0
  82. package/dist/ui/theme.js.map +1 -0
  83. package/package.json +4 -5
  84. package/dist/cli.d.ts +0 -3
  85. package/dist/cli.d.ts.map +0 -1
  86. package/dist/cli.js +0 -252
  87. package/dist/cli.js.map +0 -1
  88. package/dist/commands/alias.d.ts +0 -30
  89. package/dist/commands/alias.d.ts.map +0 -1
  90. package/dist/commands/alias.js +0 -213
  91. package/dist/commands/alias.js.map +0 -1
  92. package/dist/commands/changelog.d.ts +0 -9
  93. package/dist/commands/changelog.d.ts.map +0 -1
  94. package/dist/commands/changelog.js +0 -72
  95. package/dist/commands/changelog.js.map +0 -1
  96. package/dist/commands/completion.d.ts +0 -17
  97. package/dist/commands/completion.d.ts.map +0 -1
  98. package/dist/commands/completion.js +0 -363
  99. package/dist/commands/completion.js.map +0 -1
  100. package/dist/commands/delete.d.ts +0 -14
  101. package/dist/commands/delete.d.ts.map +0 -1
  102. package/dist/commands/delete.js +0 -54
  103. package/dist/commands/delete.js.map +0 -1
  104. package/dist/commands/edit.d.ts +0 -16
  105. package/dist/commands/edit.d.ts.map +0 -1
  106. package/dist/commands/edit.js +0 -231
  107. package/dist/commands/edit.js.map +0 -1
  108. package/dist/commands/export.d.ts +0 -23
  109. package/dist/commands/export.d.ts.map +0 -1
  110. package/dist/commands/export.js +0 -122
  111. package/dist/commands/export.js.map +0 -1
  112. package/dist/commands/import.d.ts +0 -23
  113. package/dist/commands/import.d.ts.map +0 -1
  114. package/dist/commands/import.js +0 -235
  115. package/dist/commands/import.js.map +0 -1
  116. package/dist/commands/list.d.ts +0 -25
  117. package/dist/commands/list.d.ts.map +0 -1
  118. package/dist/commands/list.js +0 -58
  119. package/dist/commands/list.js.map +0 -1
  120. package/dist/commands/prev.d.ts +0 -15
  121. package/dist/commands/prev.d.ts.map +0 -1
  122. package/dist/commands/prev.js +0 -138
  123. package/dist/commands/prev.js.map +0 -1
  124. package/dist/commands/recent.d.ts +0 -24
  125. package/dist/commands/recent.d.ts.map +0 -1
  126. package/dist/commands/recent.js +0 -132
  127. package/dist/commands/recent.js.map +0 -1
  128. package/dist/commands/run.d.ts +0 -22
  129. package/dist/commands/run.d.ts.map +0 -1
  130. package/dist/commands/run.js +0 -217
  131. package/dist/commands/run.js.map +0 -1
  132. package/dist/commands/save.d.ts +0 -17
  133. package/dist/commands/save.d.ts.map +0 -1
  134. package/dist/commands/save.js +0 -232
  135. package/dist/commands/save.js.map +0 -1
  136. package/dist/commands/search.d.ts +0 -19
  137. package/dist/commands/search.d.ts.map +0 -1
  138. package/dist/commands/search.js +0 -113
  139. package/dist/commands/search.js.map +0 -1
  140. package/dist/commands/validate.d.ts +0 -10
  141. package/dist/commands/validate.d.ts.map +0 -1
  142. package/dist/commands/validate.js +0 -162
  143. package/dist/commands/validate.js.map +0 -1
  144. package/dist/storage/index.d.ts +0 -117
  145. package/dist/storage/index.d.ts.map +0 -1
  146. package/dist/storage/index.js +0 -262
  147. package/dist/storage/index.js.map +0 -1
  148. package/dist/utils/changelog.d.ts +0 -41
  149. package/dist/utils/changelog.d.ts.map +0 -1
  150. package/dist/utils/changelog.js +0 -192
  151. package/dist/utils/changelog.js.map +0 -1
  152. package/dist/utils/constants.d.ts +0 -48
  153. package/dist/utils/constants.d.ts.map +0 -1
  154. package/dist/utils/constants.js +0 -51
  155. package/dist/utils/constants.js.map +0 -1
  156. package/dist/utils/env.d.ts +0 -64
  157. package/dist/utils/env.d.ts.map +0 -1
  158. package/dist/utils/env.js +0 -199
  159. package/dist/utils/env.js.map +0 -1
  160. package/dist/utils/errors.d.ts +0 -30
  161. package/dist/utils/errors.d.ts.map +0 -1
  162. package/dist/utils/errors.js +0 -62
  163. package/dist/utils/errors.js.map +0 -1
  164. package/dist/utils/executor.d.ts +0 -33
  165. package/dist/utils/executor.d.ts.map +0 -1
  166. package/dist/utils/executor.js.map +0 -1
  167. package/dist/utils/formatters.d.ts +0 -30
  168. package/dist/utils/formatters.d.ts.map +0 -1
  169. package/dist/utils/formatters.js +0 -188
  170. package/dist/utils/formatters.js.map +0 -1
  171. package/dist/utils/history.d.ts +0 -37
  172. package/dist/utils/history.d.ts.map +0 -1
  173. package/dist/utils/history.js +0 -179
  174. package/dist/utils/history.js.map +0 -1
  175. package/dist/utils/llm-generator.d.ts +0 -21
  176. package/dist/utils/llm-generator.d.ts.map +0 -1
  177. package/dist/utils/llm-generator.js +0 -915
  178. package/dist/utils/llm-generator.js.map +0 -1
  179. package/dist/utils/onboarding.d.ts +0 -10
  180. package/dist/utils/onboarding.d.ts.map +0 -1
  181. package/dist/utils/onboarding.js +0 -316
  182. package/dist/utils/onboarding.js.map +0 -1
  183. package/dist/utils/paths.d.ts +0 -44
  184. package/dist/utils/paths.d.ts.map +0 -1
  185. package/dist/utils/paths.js +0 -115
  186. package/dist/utils/paths.js.map +0 -1
  187. package/dist/utils/prompts.d.ts +0 -66
  188. package/dist/utils/prompts.d.ts.map +0 -1
  189. package/dist/utils/prompts.js +0 -51
  190. package/dist/utils/prompts.js.map +0 -1
  191. package/dist/utils/recent.d.ts +0 -55
  192. package/dist/utils/recent.d.ts.map +0 -1
  193. package/dist/utils/recent.js +0 -102
  194. package/dist/utils/recent.js.map +0 -1
  195. package/dist/utils/validator.d.ts +0 -56
  196. package/dist/utils/validator.d.ts.map +0 -1
  197. package/dist/utils/validator.js +0 -413
  198. package/dist/utils/validator.js.map +0 -1
  199. package/dist/utils/version-checker.d.ts +0 -29
  200. package/dist/utils/version-checker.d.ts.map +0 -1
  201. package/dist/utils/version-checker.js +0 -191
  202. package/dist/utils/version-checker.js.map +0 -1
  203. package/whats-new.json +0 -202
@@ -1 +0,0 @@
1
- {"version":3,"file":"llm-generator.js","sourceRoot":"","sources":["../../src/utils/llm-generator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,gDA80BC;AAOD,sCAOC;AAMD,oDAYC;AAr3BD,uCAAyB;AACzB,2CAA6B;AAC7B,2CAAoD;AAEpD;;GAEG;AACH,SAAgB,kBAAkB;IAChC,OAAO;;WAEE,uBAAW;iBACL,oBAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAu0BC,uBAAW;;CAEpC,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAAC,SAAiB;IAC7C,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAEjD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAE5C,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,SAAgB,oBAAoB;IAMlC,OAAO;QACL,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,yCAAyC,kBAAkB,EAAE,yDAAyD;QAC/H,SAAS,EAAE,OAAO,CAAC,GAAG,EAAE;QACxB,QAAQ,EAAE,SAAS,EAAE,gEAAgE;KACtF,CAAC;AACJ,CAAC"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Check if this is a first install or upgrade, and show appropriate onboarding
3
- * @returns true if onboarding was shown, false otherwise
4
- */
5
- export declare function checkAndShowOnboarding(): boolean;
6
- /**
7
- * Check if user has completed onboarding
8
- */
9
- export declare function hasCompletedOnboarding(): boolean;
10
- //# sourceMappingURL=onboarding.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"onboarding.d.ts","sourceRoot":"","sources":["../../src/utils/onboarding.ts"],"names":[],"mappings":"AAwQA;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CA8ChD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAGhD"}
@@ -1,316 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.checkAndShowOnboarding = checkAndShowOnboarding;
40
- exports.hasCompletedOnboarding = hasCompletedOnboarding;
41
- const fs = __importStar(require("fs"));
42
- const path = __importStar(require("path"));
43
- const chalk_1 = __importDefault(require("chalk"));
44
- const storage_1 = require("../storage");
45
- const constants_1 = require("./constants");
46
- const changelog_1 = require("./changelog");
47
- const ONBOARDING_FILE = 'onboarding.json';
48
- /**
49
- * Compare two semantic version strings
50
- * @returns 1 if v1 > v2, -1 if v1 < v2, 0 if equal
51
- */
52
- function compareVersions(v1, v2) {
53
- const parts1 = v1.split('.').map(Number);
54
- const parts2 = v2.split('.').map(Number);
55
- for (let i = 0; i < Math.max(parts1.length, parts2.length); i++) {
56
- const num1 = parts1[i] || 0;
57
- const num2 = parts2[i] || 0;
58
- if (num1 > num2)
59
- return 1;
60
- if (num1 < num2)
61
- return -1;
62
- }
63
- return 0;
64
- }
65
- /**
66
- * Get the path to the onboarding state file
67
- */
68
- function getOnboardingPath() {
69
- return path.join((0, storage_1.getConfigDir)(), ONBOARDING_FILE);
70
- }
71
- /**
72
- * Load onboarding state from disk
73
- */
74
- function loadOnboardingState() {
75
- const onboardingPath = getOnboardingPath();
76
- if (!fs.existsSync(onboardingPath)) {
77
- return null;
78
- }
79
- try {
80
- const data = fs.readFileSync(onboardingPath, 'utf8');
81
- return JSON.parse(data);
82
- }
83
- catch {
84
- return null;
85
- }
86
- }
87
- /**
88
- * Save onboarding state to disk
89
- */
90
- function saveOnboardingState(state) {
91
- const onboardingPath = getOnboardingPath();
92
- try {
93
- fs.writeFileSync(onboardingPath, JSON.stringify(state, null, 2), 'utf8');
94
- }
95
- catch (error) {
96
- // Silently fail - onboarding is not critical
97
- }
98
- }
99
- /**
100
- * Display the welcome message for first-time users
101
- */
102
- function showWelcomeMessage() {
103
- console.log();
104
- console.log(chalk_1.default.bold.cyan('🎉 Welcome to AliasMate! 🎉'));
105
- console.log();
106
- console.log(chalk_1.default.white('Thanks for installing AliasMate - your terminal productivity companion!'));
107
- console.log();
108
- console.log(chalk_1.default.bold.green('Why AliasMate?'));
109
- console.log(chalk_1.default.gray(' • Save complex commands with one simple command'));
110
- console.log(chalk_1.default.gray(' • Never lose track of useful commands again'));
111
- console.log(chalk_1.default.gray(' • Execute commands in their correct directories automatically'));
112
- console.log(chalk_1.default.gray(' • Share your workflows with your team'));
113
- console.log();
114
- }
115
- /**
116
- * Display a quick tour of the main features
117
- */
118
- function showQuickTour() {
119
- console.log(chalk_1.default.bold.yellow('⚡ Quick Tour - How It Works:'));
120
- console.log();
121
- console.log(chalk_1.default.bold('1️⃣ Save Commands'));
122
- console.log(chalk_1.default.gray(' After running any command, save it:'));
123
- console.log(chalk_1.default.cyan(' $ npm run build'));
124
- console.log(chalk_1.default.cyan(' $ aliasmate prev build'));
125
- console.log(chalk_1.default.gray(' ✓ Saves the command with its working directory'));
126
- console.log();
127
- console.log(chalk_1.default.bold('2️⃣ Run Anywhere'));
128
- console.log(chalk_1.default.gray(' Execute saved commands from any location:'));
129
- console.log(chalk_1.default.cyan(' $ aliasmate run build'));
130
- console.log(chalk_1.default.gray(' ✓ Runs in the correct directory automatically'));
131
- console.log();
132
- console.log(chalk_1.default.bold('3️⃣ Manage Easily'));
133
- console.log(chalk_1.default.cyan(' $ aliasmate list ') + chalk_1.default.gray('# View all saved commands'));
134
- console.log(chalk_1.default.cyan(' $ aliasmate search test ') + chalk_1.default.gray('# Find specific commands'));
135
- console.log(chalk_1.default.cyan(' $ aliasmate edit build ') + chalk_1.default.gray('# Modify saved commands'));
136
- console.log();
137
- console.log(chalk_1.default.bold('4️⃣ Share & Backup'));
138
- console.log(chalk_1.default.cyan(' $ aliasmate export my-commands.json'));
139
- console.log(chalk_1.default.cyan(' $ aliasmate import my-commands.json'));
140
- console.log(chalk_1.default.gray(' ✓ Share workflows with your team'));
141
- console.log();
142
- console.log(chalk_1.default.bold('5️⃣ LLM Integration'));
143
- console.log(chalk_1.default.gray(' A default "llm" command has been created for you:'));
144
- console.log(chalk_1.default.cyan(' $ aliasmate run llm'));
145
- console.log(chalk_1.default.gray(' ✓ Generates llm.txt with all AliasMate features'));
146
- console.log(chalk_1.default.gray(' ✓ Share this file with AI assistants for better help'));
147
- console.log();
148
- }
149
- /**
150
- * Display message when user is on an older version (downgrade detected)
151
- */
152
- function showOutdatedVersionMessage(currentVersion, newerVersion) {
153
- console.log();
154
- console.log(chalk_1.default.yellow(`⚠️ You're running AliasMate v${currentVersion}`));
155
- console.log(chalk_1.default.gray(` A newer version (v${newerVersion}) was previously installed`));
156
- console.log();
157
- // Try to show what's available in the newer version
158
- try {
159
- const highlights = (0, changelog_1.getUpgradeSummary)(currentVersion, newerVersion);
160
- if (highlights.length > 0) {
161
- console.log(chalk_1.default.white('📦 Upgrade to get these features:'));
162
- highlights.slice(0, 5).forEach((highlight) => {
163
- console.log(chalk_1.default.cyan(` • ${highlight}`));
164
- });
165
- console.log();
166
- }
167
- }
168
- catch (error) {
169
- // Silent fallback
170
- }
171
- console.log(chalk_1.default.bold.cyan('🚀 Upgrade to the latest version:'));
172
- console.log(chalk_1.default.white(' npm install -g aliasmate@latest'));
173
- console.log();
174
- console.log(chalk_1.default.gray(' Or check what\'s new:') + chalk_1.default.cyan(' aliasmate changelog'));
175
- console.log();
176
- }
177
- /**
178
- * Display upgrade message when version changes
179
- */
180
- function showUpgradeMessage(oldVersion, newVersion) {
181
- console.log();
182
- console.log(chalk_1.default.bold.green(`🎊 AliasMate upgraded from v${oldVersion} to v${newVersion}!`));
183
- console.log();
184
- // Try to show cumulative changelog
185
- try {
186
- const highlights = (0, changelog_1.getUpgradeSummary)(oldVersion, newVersion);
187
- if (highlights.length > 0) {
188
- console.log(chalk_1.default.white("What's new (highlights):"));
189
- highlights.forEach((highlight) => {
190
- console.log(chalk_1.default.gray(` • ${highlight}`));
191
- });
192
- console.log();
193
- console.log(chalk_1.default.yellow('For complete changelog, visit:'));
194
- console.log(chalk_1.default.cyan(' https://github.com/aliasmate/aliasmate/blob/main/CHANGELOG.md'));
195
- console.log();
196
- console.log(chalk_1.default.gray('Or run:') + chalk_1.default.cyan(' aliasmate changelog'));
197
- }
198
- else {
199
- // Fallback if no changelog data
200
- console.log(chalk_1.default.white("What's new:"));
201
- console.log(chalk_1.default.gray(' Check CHANGELOG.md for details'));
202
- }
203
- }
204
- catch (error) {
205
- // Fallback on error
206
- console.log(chalk_1.default.white("What's new:"));
207
- console.log(chalk_1.default.gray(' Check CHANGELOG.md for details'));
208
- }
209
- console.log();
210
- console.log(chalk_1.default.yellow('Run') + chalk_1.default.cyan(' aliasmate list ') + chalk_1.default.yellow('to see your commands'));
211
- console.log();
212
- }
213
- /**
214
- * Display shell configuration instructions
215
- */
216
- function showShellConfiguration() {
217
- console.log(chalk_1.default.bold.yellow('⚙️ Shell Configuration (Recommended):'));
218
- console.log();
219
- console.log(chalk_1.default.gray('For') +
220
- chalk_1.default.cyan(' aliasmate prev ') +
221
- chalk_1.default.gray('to capture commands immediately,'));
222
- console.log(chalk_1.default.gray('configure your shell to write history in real-time:'));
223
- console.log();
224
- const shell = process.env.SHELL || '';
225
- if (shell.includes('zsh')) {
226
- console.log(chalk_1.default.bold('For zsh users:'));
227
- console.log(chalk_1.default.gray('Add to') + chalk_1.default.cyan(' ~/.zshrc') + chalk_1.default.gray(':'));
228
- console.log(chalk_1.default.cyan(' setopt INC_APPEND_HISTORY'));
229
- console.log(chalk_1.default.gray('Then run:') + chalk_1.default.cyan(' source ~/.zshrc'));
230
- }
231
- else if (shell.includes('bash')) {
232
- console.log(chalk_1.default.bold('For bash users:'));
233
- console.log(chalk_1.default.gray('Add to') + chalk_1.default.cyan(' ~/.bashrc') + chalk_1.default.gray(':'));
234
- console.log(chalk_1.default.cyan(' PROMPT_COMMAND="history -a"'));
235
- console.log(chalk_1.default.gray('Then run:') + chalk_1.default.cyan(' source ~/.bashrc'));
236
- }
237
- else {
238
- console.log(chalk_1.default.bold('For zsh:'));
239
- console.log(chalk_1.default.cyan(' setopt INC_APPEND_HISTORY') + chalk_1.default.gray(' (add to ~/.zshrc)'));
240
- console.log(chalk_1.default.bold('For bash:'));
241
- console.log(chalk_1.default.cyan(' PROMPT_COMMAND="history -a"') + chalk_1.default.gray(' (add to ~/.bashrc)'));
242
- }
243
- console.log();
244
- console.log(chalk_1.default.gray('Without this, history is only saved when the shell exits.'));
245
- console.log();
246
- }
247
- /**
248
- * Display helpful tips after onboarding
249
- */
250
- function showHelpfulTips() {
251
- console.log(chalk_1.default.bold.magenta('💡 Pro Tips:'));
252
- console.log(chalk_1.default.gray(' • Use') +
253
- chalk_1.default.cyan(' aliasmate save ') +
254
- chalk_1.default.gray('for interactive command creation'));
255
- console.log(chalk_1.default.gray(' • Combine with') +
256
- chalk_1.default.cyan(' aliasmate run <name> . ') +
257
- chalk_1.default.gray('to run in current directory'));
258
- console.log(chalk_1.default.gray(' • Export commands to backup or share with teammates'));
259
- console.log();
260
- console.log(chalk_1.default.gray('Need help? Run') + chalk_1.default.cyan(' aliasmate --help'));
261
- console.log();
262
- console.log(chalk_1.default.bold.green('Happy commanding! 🚀'));
263
- console.log();
264
- }
265
- /**
266
- * Check if this is a first install or upgrade, and show appropriate onboarding
267
- * @returns true if onboarding was shown, false otherwise
268
- */
269
- function checkAndShowOnboarding() {
270
- const state = loadOnboardingState();
271
- const currentVersion = constants_1.APP_VERSION;
272
- // First install
273
- if (!state) {
274
- showWelcomeMessage();
275
- showQuickTour();
276
- showShellConfiguration();
277
- showHelpfulTips();
278
- const newState = {
279
- version: currentVersion,
280
- lastShownVersion: currentVersion,
281
- hasSeenWelcome: true,
282
- installDate: new Date().toISOString(),
283
- };
284
- saveOnboardingState(newState);
285
- return true;
286
- }
287
- // Version change detected
288
- if (state.version !== currentVersion) {
289
- const comparison = compareVersions(currentVersion, state.version);
290
- if (comparison > 0) {
291
- // Upgrade: show what's new
292
- showUpgradeMessage(state.version, currentVersion);
293
- }
294
- else if (comparison < 0) {
295
- // Downgrade: encourage user to upgrade to latest
296
- showOutdatedVersionMessage(currentVersion, state.version);
297
- }
298
- // Update state regardless (upgrade or downgrade)
299
- const updatedState = {
300
- ...state,
301
- version: currentVersion,
302
- lastShownVersion: currentVersion,
303
- };
304
- saveOnboardingState(updatedState);
305
- return comparison !== 0; // Return true if we showed any message
306
- }
307
- return false;
308
- }
309
- /**
310
- * Check if user has completed onboarding
311
- */
312
- function hasCompletedOnboarding() {
313
- const state = loadOnboardingState();
314
- return state !== null && state.hasSeenWelcome;
315
- }
316
- //# sourceMappingURL=onboarding.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"onboarding.js","sourceRoot":"","sources":["../../src/utils/onboarding.ts"],"names":[],"mappings":"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"}
@@ -1,44 +0,0 @@
1
- /**
2
- * Resolve a path, handling relative paths, absolute paths, and special cases
3
- * Works cross-platform (Windows, macOS, Linux)
4
- *
5
- * @param inputPath - The path to resolve
6
- * @param basePath - The base path to resolve relative paths against (defaults to cwd)
7
- * @returns The resolved absolute path
8
- *
9
- * @example
10
- * ```ts
11
- * resolvePath('.', '/home/user') // => '/home/user'
12
- * resolvePath('..', '/home/user') // => '/home'
13
- * resolvePath('/absolute/path') // => '/absolute/path'
14
- * resolvePath('relative/path', '/base') // => '/base/relative/path'
15
- * ```
16
- */
17
- export declare function resolvePath(inputPath: string, basePath?: string): string;
18
- /**
19
- * Validate that a directory exists and is accessible
20
- *
21
- * @param dirPath - The directory path to validate
22
- * @returns true if directory exists and is accessible, false otherwise
23
- *
24
- * @example
25
- * ```ts
26
- * if (isValidDirectory('/home/user/project')) {
27
- * console.log('Directory is valid');
28
- * }
29
- * ```
30
- */
31
- export declare function isValidDirectory(dirPath: string): boolean;
32
- /**
33
- * Sanitize a command name by removing invalid characters
34
- *
35
- * @param name - The command name to sanitize
36
- * @returns Sanitized command name
37
- *
38
- * @example
39
- * ```ts
40
- * sanitizeCommandName('my command!') // => 'my-command'
41
- * ```
42
- */
43
- export declare function sanitizeCommandName(name: string): string;
44
- //# sourceMappingURL=paths.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/utils/paths.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAsB,GAAG,MAAM,CAqBvF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAOzD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMxD"}
@@ -1,115 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.resolvePath = resolvePath;
37
- exports.isValidDirectory = isValidDirectory;
38
- exports.sanitizeCommandName = sanitizeCommandName;
39
- const path = __importStar(require("path"));
40
- const fs = __importStar(require("fs"));
41
- /**
42
- * Resolve a path, handling relative paths, absolute paths, and special cases
43
- * Works cross-platform (Windows, macOS, Linux)
44
- *
45
- * @param inputPath - The path to resolve
46
- * @param basePath - The base path to resolve relative paths against (defaults to cwd)
47
- * @returns The resolved absolute path
48
- *
49
- * @example
50
- * ```ts
51
- * resolvePath('.', '/home/user') // => '/home/user'
52
- * resolvePath('..', '/home/user') // => '/home'
53
- * resolvePath('/absolute/path') // => '/absolute/path'
54
- * resolvePath('relative/path', '/base') // => '/base/relative/path'
55
- * ```
56
- */
57
- function resolvePath(inputPath, basePath = process.cwd()) {
58
- if (!inputPath) {
59
- return basePath;
60
- }
61
- // If it's already absolute, return it normalized
62
- if (path.isAbsolute(inputPath)) {
63
- return path.normalize(inputPath);
64
- }
65
- // Handle special cases
66
- if (inputPath === '.') {
67
- return basePath;
68
- }
69
- if (inputPath === '..') {
70
- return path.dirname(basePath);
71
- }
72
- // Resolve relative to base path
73
- return path.resolve(basePath, inputPath);
74
- }
75
- /**
76
- * Validate that a directory exists and is accessible
77
- *
78
- * @param dirPath - The directory path to validate
79
- * @returns true if directory exists and is accessible, false otherwise
80
- *
81
- * @example
82
- * ```ts
83
- * if (isValidDirectory('/home/user/project')) {
84
- * console.log('Directory is valid');
85
- * }
86
- * ```
87
- */
88
- function isValidDirectory(dirPath) {
89
- try {
90
- const stats = fs.statSync(dirPath);
91
- return stats.isDirectory();
92
- }
93
- catch (error) {
94
- return false;
95
- }
96
- }
97
- /**
98
- * Sanitize a command name by removing invalid characters
99
- *
100
- * @param name - The command name to sanitize
101
- * @returns Sanitized command name
102
- *
103
- * @example
104
- * ```ts
105
- * sanitizeCommandName('my command!') // => 'my-command'
106
- * ```
107
- */
108
- function sanitizeCommandName(name) {
109
- return name
110
- .trim()
111
- .replace(/[\s]+/g, '-') // Replace spaces with hyphens
112
- .replace(/[^a-zA-Z0-9_-]/g, '') // Remove invalid characters
113
- .toLowerCase();
114
- }
115
- //# sourceMappingURL=paths.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/utils/paths.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,kCAqBC;AAeD,4CAOC;AAaD,kDAMC;AAjFD,2CAA6B;AAC7B,uCAAyB;AAEzB;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,WAAW,CAAC,SAAiB,EAAE,WAAmB,OAAO,CAAC,GAAG,EAAE;IAC7E,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,iDAAiD;IACjD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAED,uBAAuB;IACvB,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;QACtB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,gCAAgC;IAChC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,gBAAgB,CAAC,OAAe;IAC9C,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACnC,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,mBAAmB,CAAC,IAAY;IAC9C,OAAO,IAAI;SACR,IAAI,EAAE;SACN,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,8BAA8B;SACrD,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,4BAA4B;SAC3D,WAAW,EAAE,CAAC;AACnB,CAAC"}
@@ -1,66 +0,0 @@
1
- /**
2
- * Type-safe prompt utilities to eliminate 'any' types
3
- */
4
- export interface TextInputPrompt {
5
- type: 'input';
6
- name: string;
7
- message: string;
8
- default?: string;
9
- validate?: (input: string) => boolean | string;
10
- }
11
- export interface ConfirmPrompt {
12
- type: 'confirm';
13
- name: string;
14
- message: string;
15
- default?: boolean;
16
- }
17
- export interface ListPrompt {
18
- type: 'list';
19
- name: string;
20
- message: string;
21
- choices: Array<{
22
- name: string;
23
- value: string;
24
- }>;
25
- }
26
- export interface CheckboxPrompt {
27
- type: 'checkbox';
28
- name: string;
29
- message: string;
30
- choices: Array<{
31
- name: string;
32
- value: string;
33
- checked?: boolean;
34
- }>;
35
- }
36
- type PromptType = TextInputPrompt | ConfirmPrompt | ListPrompt | CheckboxPrompt;
37
- /**
38
- * Type-safe wrapper for inquirer text input prompt
39
- *
40
- * @param prompt - The prompt configuration
41
- * @returns Promise resolving to the user's input string
42
- */
43
- export declare function promptText(prompt: TextInputPrompt): Promise<string>;
44
- /**
45
- * Type-safe wrapper for inquirer confirm prompt
46
- *
47
- * @param prompt - The prompt configuration
48
- * @returns Promise resolving to the user's boolean choice
49
- */
50
- export declare function promptConfirm(prompt: ConfirmPrompt): Promise<boolean>;
51
- /**
52
- * Type-safe wrapper for inquirer list prompt
53
- *
54
- * @param prompt - The prompt configuration
55
- * @returns Promise resolving to the selected value
56
- */
57
- export declare function promptList(prompt: ListPrompt): Promise<string>;
58
- /**
59
- * Type-safe wrapper for multiple prompts
60
- *
61
- * @param prompts - Array of prompt configurations
62
- * @returns Promise resolving to an object with all answers
63
- */
64
- export declare function promptMultiple<T extends Record<string, unknown>>(prompts: PromptType[]): Promise<T>;
65
- export {};
66
- //# sourceMappingURL=prompts.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/utils/prompts.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,MAAM,CAAC;CAChD;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACpE;AAED,KAAK,UAAU,GAAG,eAAe,GAAG,aAAa,GAAG,UAAU,GAAG,cAAc,CAAC;AAEhF;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAGzE;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAG3E;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAGpE;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpE,OAAO,EAAE,UAAU,EAAE,GACpB,OAAO,CAAC,CAAC,CAAC,CAGZ"}
@@ -1,51 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.promptText = promptText;
7
- exports.promptConfirm = promptConfirm;
8
- exports.promptList = promptList;
9
- exports.promptMultiple = promptMultiple;
10
- const inquirer_1 = __importDefault(require("inquirer"));
11
- /**
12
- * Type-safe wrapper for inquirer text input prompt
13
- *
14
- * @param prompt - The prompt configuration
15
- * @returns Promise resolving to the user's input string
16
- */
17
- async function promptText(prompt) {
18
- const result = await inquirer_1.default.prompt([prompt]);
19
- return result[prompt.name];
20
- }
21
- /**
22
- * Type-safe wrapper for inquirer confirm prompt
23
- *
24
- * @param prompt - The prompt configuration
25
- * @returns Promise resolving to the user's boolean choice
26
- */
27
- async function promptConfirm(prompt) {
28
- const result = await inquirer_1.default.prompt([prompt]);
29
- return result[prompt.name];
30
- }
31
- /**
32
- * Type-safe wrapper for inquirer list prompt
33
- *
34
- * @param prompt - The prompt configuration
35
- * @returns Promise resolving to the selected value
36
- */
37
- async function promptList(prompt) {
38
- const result = await inquirer_1.default.prompt([prompt]);
39
- return result[prompt.name];
40
- }
41
- /**
42
- * Type-safe wrapper for multiple prompts
43
- *
44
- * @param prompts - Array of prompt configurations
45
- * @returns Promise resolving to an object with all answers
46
- */
47
- async function promptMultiple(prompts) {
48
- const result = await inquirer_1.default.prompt(prompts);
49
- return result;
50
- }
51
- //# sourceMappingURL=prompts.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/utils/prompts.ts"],"names":[],"mappings":";;;;;AA2CA,gCAGC;AAQD,sCAGC;AAQD,gCAGC;AAQD,wCAKC;AAjFD,wDAAgC;AAqChC;;;;;GAKG;AACI,KAAK,UAAU,UAAU,CAAC,MAAuB;IACtD,MAAM,MAAM,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAyB,CAAC,MAAM,CAAC,CAAC,CAAC;IACvE,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,aAAa,CAAC,MAAqB;IACvD,MAAM,MAAM,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAA0B,CAAC,MAAM,CAAC,CAAC,CAAC;IACxE,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,UAAU,CAAC,MAAkB;IACjD,MAAM,MAAM,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAyB,CAAC,MAAM,CAAC,CAAC,CAAC;IACvE,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,cAAc,CAClC,OAAqB;IAErB,MAAM,MAAM,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAI,OAAyC,CAAC,CAAC;IACnF,OAAO,MAAM,CAAC;AAChB,CAAC"}