@codyswann/lisa 1.59.0 → 1.60.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/all/deletions.json +2 -1
  2. package/dist/cli/index.d.ts.map +1 -1
  3. package/dist/cli/index.js +3 -12
  4. package/dist/cli/index.js.map +1 -1
  5. package/dist/cli/prompts.d.ts +0 -8
  6. package/dist/cli/prompts.d.ts.map +1 -1
  7. package/dist/cli/prompts.js +0 -10
  8. package/dist/cli/prompts.js.map +1 -1
  9. package/dist/core/config.d.ts +1 -1
  10. package/dist/core/config.d.ts.map +1 -1
  11. package/dist/core/index.d.ts +0 -1
  12. package/dist/core/index.d.ts.map +1 -1
  13. package/dist/core/index.js +0 -1
  14. package/dist/core/index.js.map +1 -1
  15. package/dist/core/lisa.d.ts +1 -36
  16. package/dist/core/lisa.d.ts.map +1 -1
  17. package/dist/core/lisa.js +19 -213
  18. package/dist/core/lisa.js.map +1 -1
  19. package/dist/strategies/copy-contents.d.ts +1 -1
  20. package/dist/strategies/copy-contents.d.ts.map +1 -1
  21. package/dist/strategies/copy-contents.js +3 -12
  22. package/dist/strategies/copy-contents.js.map +1 -1
  23. package/dist/strategies/copy-overwrite.d.ts +1 -1
  24. package/dist/strategies/copy-overwrite.d.ts.map +1 -1
  25. package/dist/strategies/copy-overwrite.js +2 -11
  26. package/dist/strategies/copy-overwrite.js.map +1 -1
  27. package/dist/strategies/create-only.d.ts +1 -2
  28. package/dist/strategies/create-only.d.ts.map +1 -1
  29. package/dist/strategies/create-only.js +2 -8
  30. package/dist/strategies/create-only.js.map +1 -1
  31. package/dist/strategies/merge.d.ts +1 -1
  32. package/dist/strategies/merge.d.ts.map +1 -1
  33. package/dist/strategies/merge.js +2 -9
  34. package/dist/strategies/merge.js.map +1 -1
  35. package/dist/strategies/package-lisa.d.ts.map +1 -1
  36. package/dist/strategies/package-lisa.js +0 -5
  37. package/dist/strategies/package-lisa.js.map +1 -1
  38. package/dist/strategies/strategy.interface.d.ts +1 -3
  39. package/dist/strategies/strategy.interface.d.ts.map +1 -1
  40. package/dist/strategies/tagged-merge.d.ts +2 -2
  41. package/dist/strategies/tagged-merge.d.ts.map +1 -1
  42. package/dist/strategies/tagged-merge.js +3 -8
  43. package/dist/strategies/tagged-merge.js.map +1 -1
  44. package/expo/package-lisa/package.lisa.json +3 -3
  45. package/package.json +1 -1
  46. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  47. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  48. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  49. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  50. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  51. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  52. package/rails/create-only/.github/workflows/ci.yml +6 -2
  53. package/rails/create-only/.github/workflows/deploy.yml +284 -0
  54. package/dist/core/manifest.d.ts +0 -71
  55. package/dist/core/manifest.d.ts.map +0 -1
  56. package/dist/core/manifest.js +0 -146
  57. package/dist/core/manifest.js.map +0 -1
  58. package/rails/create-only/.github/workflows/quality.yml +0 -96
  59. package/rails/create-only/.github/workflows/release.yml +0 -94
@@ -130,7 +130,8 @@
130
130
  ".coderabbit.yml",
131
131
  "scripts/setup-deploy-key.sh",
132
132
  "HUMAN.md",
133
- ".claude/rules/lisa.md"
133
+ ".claude/rules/lisa.md",
134
+ ".lisa-manifest"
134
135
  ],
135
136
  "keep": [
136
137
  "scripts/setup-deploy-key.sh",
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyBpC;;;GAGG;AACH,wBAAgB,aAAa,IAAI,OAAO,CA6BvC;AAuHD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBpC;;;GAGG;AACH,wBAAgB,aAAa,IAAI,OAAO,CA4BvC;AA+GD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
package/dist/cli/index.js CHANGED
@@ -3,7 +3,6 @@ import * as path from "node:path";
3
3
  import { fileURLToPath } from "node:url";
4
4
  import { GitService } from "../core/git-service.js";
5
5
  import { Lisa } from "../core/lisa.js";
6
- import { DryRunManifestService, ManifestService } from "../core/manifest.js";
7
6
  import { DetectorRegistry } from "../detection/index.js";
8
7
  import { ConsoleLogger } from "../logging/index.js";
9
8
  import { StrategyRegistry } from "../strategies/index.js";
@@ -33,7 +32,6 @@ export function createProgram() {
33
32
  .option("-n, --dry-run", "Show what would be done without making changes")
34
33
  .option("-y, --yes", "Non-interactive mode (auto-accept defaults, overwrite on conflict)")
35
34
  .option("-v, --validate", "Validate project compatibility without applying changes")
36
- .option("-u, --uninstall", "Remove Lisa-managed files from the project")
37
35
  .option("--skip-git-check", "Skip dirty git working directory check (for postinstall use)")
38
36
  .action(async (destination, options) => {
39
37
  await runLisa(destination, options);
@@ -52,7 +50,6 @@ function printUsageAndExit() {
52
50
  console.log(" -n, --dry-run Show what would be done without making changes");
53
51
  console.log(" -y, --yes Non-interactive mode (auto-accept defaults, overwrite on conflict)");
54
52
  console.log(" -v, --validate Validate project compatibility without applying changes");
55
- console.log(" -u, --uninstall Remove Lisa-managed files from the project");
56
53
  console.log(" --skip-git-check Skip dirty git working directory check (for postinstall use)");
57
54
  console.log(" -h, --help Show this help message");
58
55
  console.log("");
@@ -61,7 +58,6 @@ function printUsageAndExit() {
61
58
  console.log(" lisa --dry-run .");
62
59
  console.log(" lisa --yes /path/to/project # CI/CD pipeline usage");
63
60
  console.log(" lisa --validate . # Check compatibility only");
64
- console.log(" lisa --uninstall . # Remove Lisa configurations");
65
61
  process.exit(1);
66
62
  }
67
63
  /**
@@ -75,9 +71,6 @@ function createDependencies(dryRun, yesMode, logger) {
75
71
  return {
76
72
  logger,
77
73
  prompter: createPrompter(yesMode),
78
- manifestService: dryRun
79
- ? new DryRunManifestService()
80
- : new ManifestService(),
81
74
  backupService: dryRun
82
75
  ? new DryRunBackupService()
83
76
  : new BackupService(logger),
@@ -110,11 +103,9 @@ async function runLisa(destination, options) {
110
103
  const deps = createDependencies(dryRun, yesMode, logger);
111
104
  const lisa = new Lisa(config, deps);
112
105
  try {
113
- const result = options.uninstall
114
- ? await lisa.uninstall()
115
- : options.validate
116
- ? await lisa.validate()
117
- : await lisa.apply();
106
+ const result = options.validate
107
+ ? await lisa.validate()
108
+ : await lisa.apply();
118
109
  if (!result.success) {
119
110
  result.errors.forEach(error => logger.error(error));
120
111
  process.exit(1);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -25,12 +25,6 @@ export interface IPrompter {
25
25
  * @returns True if user wants to proceed despite dirty state
26
26
  */
27
27
  confirmDirtyGit(status: string): Promise<boolean>;
28
- /**
29
- * Prompt when project is already on the latest Lisa version
30
- * @param version The current Lisa version
31
- * @returns True if user wants to proceed with update anyway
32
- */
33
- confirmLatestVersion(version: string): Promise<boolean>;
34
28
  }
35
29
  /**
36
30
  * Interactive prompter using {@link https://github.com/enquirer/enquirer inquirer}/prompts
@@ -39,7 +33,6 @@ export declare class InteractivePrompter implements IPrompter {
39
33
  promptOverwrite(relativePath: string): Promise<OverwriteDecision>;
40
34
  confirmProjectTypes(detected: readonly ProjectType[]): Promise<readonly ProjectType[]>;
41
35
  confirmDirtyGit(status: string): Promise<boolean>;
42
- confirmLatestVersion(version: string): Promise<boolean>;
43
36
  }
44
37
  /**
45
38
  * Auto-accepting prompter for non-interactive mode
@@ -51,7 +44,6 @@ export declare class AutoAcceptPrompter implements IPrompter {
51
44
  promptOverwrite(_relativePath: string): Promise<OverwriteDecision>;
52
45
  confirmProjectTypes(detected: readonly ProjectType[]): Promise<readonly ProjectType[]>;
53
46
  confirmDirtyGit(status: string): Promise<boolean>;
54
- confirmLatestVersion(_version: string): Promise<boolean>;
55
47
  }
56
48
  /**
57
49
  * Check if running in interactive mode (TTY available)
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/cli/prompts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAarD;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,IAAI,GAAG,MAAM,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;;;OAIG;IACH,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAElE;;;;OAIG;IACH,mBAAmB,CACjB,QAAQ,EAAE,SAAS,WAAW,EAAE,GAC/B,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC,CAAC;IAEnC;;;;OAIG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAElD;;;;OAIG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACzD;AAED;;GAEG;AACH,qBAAa,mBAAoB,YAAW,SAAS;IAC7C,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAWjE,mBAAmB,CACvB,QAAQ,EAAE,SAAS,WAAW,EAAE,GAC/B,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC;IAY5B,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWjD,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAM9D;AAED;;;;;GAKG;AACH,qBAAa,kBAAmB,YAAW,SAAS;IAC5C,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIlE,mBAAmB,CACvB,QAAQ,EAAE,SAAS,WAAW,EAAE,GAC/B,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC;IAI5B,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAyBjD,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAI/D;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,CAK1D"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/cli/prompts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAarD;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,IAAI,GAAG,MAAM,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;;;OAIG;IACH,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAElE;;;;OAIG;IACH,mBAAmB,CACjB,QAAQ,EAAE,SAAS,WAAW,EAAE,GAC/B,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC,CAAC;IAEnC;;;;OAIG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACnD;AAED;;GAEG;AACH,qBAAa,mBAAoB,YAAW,SAAS;IAC7C,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAWjE,mBAAmB,CACvB,QAAQ,EAAE,SAAS,WAAW,EAAE,GAC/B,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC;IAY5B,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAUxD;AAED;;;;;GAKG;AACH,qBAAa,kBAAmB,YAAW,SAAS;IAC5C,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIlE,mBAAmB,CACvB,QAAQ,EAAE,SAAS,WAAW,EAAE,GAC/B,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC;IAI5B,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAwBxD;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,CAK1D"}
@@ -38,12 +38,6 @@ export class InteractivePrompter {
38
38
  default: false,
39
39
  });
40
40
  }
41
- async confirmLatestVersion(version) {
42
- return confirm({
43
- message: `You are already on the latest version of Lisa (${version}). Are you sure you want to update again?`,
44
- default: false,
45
- });
46
- }
47
41
  }
48
42
  /**
49
43
  * Auto-accepting prompter for non-interactive mode
@@ -78,10 +72,6 @@ export class AutoAcceptPrompter {
78
72
  default: false,
79
73
  });
80
74
  }
81
- async confirmLatestVersion(_version) {
82
- // In auto-accept mode, proceed with update even if on latest version
83
- return true;
84
- }
85
75
  }
86
76
  /**
87
77
  * Check if running in interactive mode (TTY available)
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/cli/prompts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/cli/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGpD;;GAEG;AACH,MAAM,0BAA0B,GAAG,iCAAiC,CAAC;AAErE;;GAEG;AACH,MAAM,yBAAyB,GAC7B,iFAAiF,CAAC;AAmCpF;;GAEG;AACH,MAAM,OAAO,mBAAmB;IAC9B,KAAK,CAAC,eAAe,CAAC,YAAoB;QACxC,OAAO,MAAM,CAAC;YACZ,OAAO,EAAE,iBAAiB,YAAY,cAAc;YACpD,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,KAAc,EAAE;gBAClD,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,IAAa,EAAE;gBAC3C,EAAE,IAAI,EAAE,yBAAyB,EAAE,KAAK,EAAE,MAAe,EAAE;aAC5D;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,QAAgC;QAEhC,MAAM,YAAY,GAChB,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAEhE,MAAM,OAAO,CAAC;YACZ,OAAO,EAAE,2BAA2B,YAAY,8BAA8B;YAC9E,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAAc;QAClC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,OAAO,OAAO,CAAC;YACb,OAAO,EAAE,yBAAyB;YAClC,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;IACL,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,kBAAkB;IAC7B,KAAK,CAAC,eAAe,CAAC,aAAqB;QACzC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,QAAgC;QAEhC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAAc;QAClC,wDAAwD;QACxD,qEAAqE;QACrE,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACrB,8DAA8D;YAC9D,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CACT,kGAAkG,CACnG,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;YACxE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,OAAO,OAAO,CAAC;YACb,OAAO,EAAE,yBAAyB;YAClC,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;IACL,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC;AACtC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,IAAI,OAAO,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;QAChC,OAAO,IAAI,kBAAkB,EAAE,CAAC;IAClC,CAAC;IACD,OAAO,IAAI,mBAAmB,EAAE,CAAC;AACnC,CAAC"}
@@ -38,7 +38,7 @@ export interface LisaConfig {
38
38
  /**
39
39
  * Operation mode for Lisa execution
40
40
  */
41
- export type OperationMode = "apply" | "validate" | "uninstall";
41
+ export type OperationMode = "apply" | "validate";
42
42
  /**
43
43
  * Result of a single file operation
44
44
  */
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB,gBAAgB,GAChB,eAAe,GACf,aAAa,GACb,OAAO,GACP,cAAc,GACd,cAAc,CAAC;AAEnB;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,YAAY,GACZ,MAAM,GACN,QAAQ,GACR,KAAK,GACL,aAAa,GACb,OAAO,CAAC;AAEZ;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAC3C,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC,CAQ/B,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,WAAW,EAO3C,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,YAAY,EAOzC,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,+DAA+D;IAC/D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,4CAA4C;IAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,8DAA8D;IAC9D,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEzB,8DAA8D;IAC9D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B,4DAA4D;IAC5D,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAE/B,gFAAgF;IAChF,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,UAAU,GAAG,WAAW,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,MAAM,EACX,QAAQ,GACR,SAAS,GACT,aAAa,GACb,UAAU,GACV,QAAQ,GACR,SAAS,CAAC;IACd,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,6CAA6C;IAC7C,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,oEAAoE;IACpE,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,SAAS,WAAW,EAAE,CAAC;IAC/C,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,iBAAiB,CAUzD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB,gBAAgB,GAChB,eAAe,GACf,aAAa,GACb,OAAO,GACP,cAAc,GACd,cAAc,CAAC;AAEnB;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,YAAY,GACZ,MAAM,GACN,QAAQ,GACR,KAAK,GACL,aAAa,GACb,OAAO,CAAC;AAEZ;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAC3C,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC,CAQ/B,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,WAAW,EAO3C,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,YAAY,EAOzC,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,+DAA+D;IAC/D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,4CAA4C;IAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,8DAA8D;IAC9D,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEzB,8DAA8D;IAC9D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B,4DAA4D;IAC5D,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAE/B,gFAAgF;IAChF,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,UAAU,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,MAAM,EACX,QAAQ,GACR,SAAS,GACT,aAAa,GACb,UAAU,GACV,QAAQ,GACR,SAAS,CAAC;IACd,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,6CAA6C;IAC7C,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,oEAAoE;IACpE,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,SAAS,WAAW,EAAE,CAAC;IAC/C,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,iBAAiB,CAUzD"}
@@ -1,4 +1,3 @@
1
1
  export * from "./config.js";
2
2
  export { Lisa, type LisaDependencies } from "./lisa.js";
3
- export { ManifestService, DryRunManifestService, ManifestNotFoundError, MANIFEST_FILENAME, type IManifestService, type ManifestEntry, } from "./manifest.js";
4
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,KAAK,aAAa,GACnB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC"}
@@ -1,4 +1,3 @@
1
1
  export * from "./config.js";
2
2
  export { Lisa } from "./lisa.js";
3
- export { ManifestService, DryRunManifestService, ManifestNotFoundError, MANIFEST_FILENAME, } from "./manifest.js";
4
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAyB,MAAM,WAAW,CAAC;AACxD,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,GAGlB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAyB,MAAM,WAAW,CAAC"}
@@ -5,14 +5,12 @@ import { StrategyRegistry } from "../strategies/index.js";
5
5
  import type { IBackupService } from "../transaction/index.js";
6
6
  import type { LisaConfig, LisaResult } from "./config.js";
7
7
  import type { IGitService } from "./git-service.js";
8
- import type { IManifestService } from "./manifest.js";
9
8
  /**
10
9
  * Dependencies for Lisa operations
11
10
  */
12
11
  export interface LisaDependencies {
13
12
  readonly logger: ILogger;
14
13
  readonly prompter: IPrompter;
15
- readonly manifestService: IManifestService;
16
14
  readonly backupService: IBackupService;
17
15
  readonly detectorRegistry: DetectorRegistry;
18
16
  readonly strategyRegistry: StrategyRegistry;
@@ -31,7 +29,7 @@ export declare class Lisa {
31
29
  private readonly lisaignoreSuffix;
32
30
  /**
33
31
  * Initialize Lisa orchestrator
34
- * @param config - Configuration for the apply/uninstall operation
32
+ * @param config - Configuration for the apply operation
35
33
  * @param deps - Injected service dependencies
36
34
  */
37
35
  constructor(config: LisaConfig, deps: LisaDependencies);
@@ -39,15 +37,6 @@ export declare class Lisa {
39
37
  * Initialize services
40
38
  */
41
39
  private initServices;
42
- /**
43
- * Check if project is already on the latest Lisa version
44
- */
45
- private checkForLatestVersion;
46
- /**
47
- * Get the current Lisa version
48
- * @returns The version string from package.json, or "unknown" if it cannot be read
49
- */
50
- private getCurrentLisaVersion;
51
40
  /**
52
41
  * Detect and confirm project types
53
42
  */
@@ -96,26 +85,6 @@ export declare class Lisa {
96
85
  * @returns Result of the validate operation
97
86
  */
98
87
  validate(): Promise<LisaResult>;
99
- /**
100
- * Uninstall Lisa-managed files from the project
101
- * @returns Result of the uninstall operation with removal statistics
102
- */
103
- uninstall(): Promise<LisaResult>;
104
- /**
105
- * Process single uninstall entry and return updated counts
106
- * @param entry - Manifest entry to process for removal
107
- * @param stats - Current removal statistics
108
- * @param stats.removed - Number of files removed so far
109
- * @param stats.skipped - Number of files skipped so far
110
- * @returns Updated removal statistics after processing this entry
111
- */
112
- private processEntry;
113
- /**
114
- * Process manifest entries during uninstall
115
- * @param entries Manifest entries to process
116
- * @returns Stats with removed and skipped counts
117
- */
118
- private processUninstallEntries;
119
88
  /**
120
89
  * Process all files for a given project type
121
90
  * @param type Project type to process
@@ -213,9 +182,5 @@ export declare class Lisa {
213
182
  * @param projectDir - The destination project directory to inspect
214
183
  */
215
184
  private printMigrationNotices;
216
- /**
217
- * Remove empty directories after uninstall
218
- */
219
- private removeEmptyDirectories;
220
185
  }
221
186
  //# sourceMappingURL=lisa.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lisa.d.ts","sourceRoot":"","sources":["../../src/core/lisa.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lisa.d.ts","sourceRoot":"","sources":["../../src/core/lisa.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAMzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAwB,MAAM,wBAAwB,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAM9D,OAAO,KAAK,EAIV,UAAU,EACV,UAAU,EAGX,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC;IACvC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;CAClC;AAED;;GAEG;AACH,qBAAa,IAAI;IAgBb,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAhBvB,OAAO,CAAC,QAAQ,CAA8C;IAC9D,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,cAAc,CAGpB;IACF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8C;IACxE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IAEpD;;;;OAIG;gBAEgB,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,gBAAgB;IAGzC;;OAEG;YACW,YAAY;IAQ1B;;OAEG;YACW,WAAW;IAUzB;;OAEG;YACW,qBAAqB;IAyBnC;;OAEG;YACW,gBAAgB;IAoB9B;;;OAGG;YACW,oBAAoB;IA2BlC;;;OAGG;YACW,qBAAqB;IAqCnC;;;OAGG;YACW,QAAQ;IAQtB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAWxB;;;;OAIG;YACW,gBAAgB;IAqB9B;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC;IAkBlC;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC;IAKrC;;;OAGG;YACW,kBAAkB;IAahC;;;;;;OAMG;YACW,gBAAgB;IAwD9B;;;;;;OAMG;YACW,qBAAqB;IAyBnC;;;;OAIG;YACW,QAAQ;IAatB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAqBtB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAKlB;;;OAGG;IACH,OAAO,CAAC,SAAS;IAqCjB;;OAEG;YACW,mBAAmB;IAajC;;OAEG;YACW,gBAAgB;IA+B9B;;OAEG;IACH,OAAO,CAAC,WAAW;IA4BnB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAgB1B;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAYrB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA6EzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAazB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAgB7B;;OAEG;IACH,OAAO,CAAC,YAAY;IAOpB;;;;;OAKG;YACW,WAAW;IAQzB;;;;;OAKG;YACW,qBAAqB;CAqDpC"}
package/dist/core/lisa.js CHANGED
@@ -1,6 +1,6 @@
1
- /* eslint-disable max-lines -- Main orchestrator class with apply/uninstall/validate operations */
1
+ /* eslint-disable max-lines -- Main orchestrator class with apply/validate operations */
2
2
  import * as fse from "fs-extra";
3
- import { readdir, readFile, rmdir, stat } from "node:fs/promises";
3
+ import { readFile, stat } from "node:fs/promises";
4
4
  import * as path from "node:path";
5
5
  import pc from "picocolors";
6
6
  import { DestinationNotDirectoryError, DestinationNotFoundError, UserAbortedError, } from "../errors/index.js";
@@ -23,7 +23,7 @@ export class Lisa {
23
23
  lisaignoreSuffix = "(.lisaignore)";
24
24
  /**
25
25
  * Initialize Lisa orchestrator
26
- * @param config - Configuration for the apply/uninstall operation
26
+ * @param config - Configuration for the apply operation
27
27
  * @param deps - Injected service dependencies
28
28
  */
29
29
  constructor(config, deps) {
@@ -34,60 +34,9 @@ export class Lisa {
34
34
  * Initialize services
35
35
  */
36
36
  async initServices() {
37
- const { backupService, manifestService } = this.deps;
37
+ const { backupService } = this.deps;
38
38
  if (!this.config.dryRun) {
39
39
  await backupService.init(this.config.destDir);
40
- await manifestService.init(this.config.destDir, this.config.lisaDir);
41
- }
42
- }
43
- /**
44
- * Check if project is already on the latest Lisa version
45
- */
46
- async checkForLatestVersion() {
47
- const { prompter, manifestService, logger } = this.deps;
48
- // Skip in dry run and validate modes
49
- if (this.config.dryRun || this.config.validateOnly) {
50
- return;
51
- }
52
- try {
53
- const manifestVersion = await manifestService.readVersion(this.config.destDir);
54
- // Only check if manifest exists (project has been initialized before)
55
- if (!manifestVersion) {
56
- return;
57
- }
58
- // Get current Lisa version
59
- const currentVersion = await this.getCurrentLisaVersion();
60
- if (manifestVersion === currentVersion) {
61
- logger.info(`Project is on Lisa version ${manifestVersion}`);
62
- const proceed = await prompter.confirmLatestVersion(manifestVersion);
63
- if (!proceed) {
64
- throw new UserAbortedError("Update cancelled: project is already on the latest version");
65
- }
66
- }
67
- }
68
- catch (error) {
69
- // If error is UserAbortedError, re-throw it
70
- if (error instanceof UserAbortedError) {
71
- throw error;
72
- }
73
- // For other errors, log and continue
74
- const message = error instanceof Error ? error.message : String(error);
75
- logger.warn(`Could not check version: ${message}`);
76
- }
77
- }
78
- /**
79
- * Get the current Lisa version
80
- * @returns The version string from package.json, or "unknown" if it cannot be read
81
- */
82
- async getCurrentLisaVersion() {
83
- try {
84
- const packageJsonPath = path.join(this.config.lisaDir, "package.json");
85
- const content = await readFile(packageJsonPath, "utf-8");
86
- const packageJson = JSON.parse(content);
87
- return packageJson.version || "unknown";
88
- }
89
- catch {
90
- return "unknown";
91
40
  }
92
41
  }
93
42
  /**
@@ -203,9 +152,8 @@ export class Lisa {
203
152
  * @returns Promise that resolves when finalization is complete
204
153
  */
205
154
  async finalize() {
206
- const { manifestService, backupService } = this.deps;
155
+ const { backupService } = this.deps;
207
156
  if (!this.config.dryRun) {
208
- await manifestService.finalize();
209
157
  await backupService.cleanup();
210
158
  }
211
159
  }
@@ -258,7 +206,6 @@ export class Lisa {
258
206
  await this.validateGitState();
259
207
  this.printHeader();
260
208
  await this.initServices();
261
- await this.checkForLatestVersion();
262
209
  await this.detectTypes();
263
210
  await this.processConfigurations();
264
211
  await this.processDeletions();
@@ -279,123 +226,6 @@ export class Lisa {
279
226
  // Validate mode is essentially a dry run
280
227
  return this.apply();
281
228
  }
282
- /**
283
- * Uninstall Lisa-managed files from the project
284
- * @returns Result of the uninstall operation with removal statistics
285
- */
286
- async uninstall() {
287
- const { logger, manifestService } = this.deps;
288
- // Validate destination
289
- await this.validateDestination();
290
- // Print header
291
- console.log("");
292
- console.log(pc.blue(this.separator));
293
- console.log(pc.blue(" Lisa Uninstaller"));
294
- console.log(pc.blue(this.separator));
295
- console.log("");
296
- const errors = [];
297
- try {
298
- // Read manifest
299
- const entries = await manifestService.read(this.config.destDir);
300
- logger.info(`Reading manifest: ${path.join(this.config.destDir, ".lisa-manifest")}`);
301
- console.log("");
302
- // Process entries
303
- const stats = await this.processUninstallEntries(entries);
304
- // Remove empty directories and manifest
305
- if (!this.config.dryRun) {
306
- await this.removeEmptyDirectories();
307
- await manifestService.remove(this.config.destDir);
308
- logger.success("Removed manifest file");
309
- }
310
- // Print summary
311
- console.log("");
312
- console.log(pc.green(this.separator));
313
- console.log(pc.green(this.config.dryRun
314
- ? " Lisa Uninstall Dry Run Complete"
315
- : " Lisa Uninstall Complete!"));
316
- console.log(pc.green(this.separator));
317
- console.log("");
318
- console.log(` ${pc.green("Removed:")} ${String(stats.removed).padStart(3)} files`);
319
- console.log(` ${pc.yellow("Skipped:")} ${String(stats.skipped).padStart(3)} files (manual review needed)`);
320
- console.log("");
321
- return {
322
- success: true,
323
- counters: {
324
- ...this.counters,
325
- copied: stats.removed,
326
- skipped: stats.skipped,
327
- },
328
- detectedTypes: [],
329
- mode: "uninstall",
330
- errors,
331
- };
332
- }
333
- catch (error) {
334
- const message = error instanceof Error ? error.message : String(error);
335
- logger.error(message);
336
- errors.push(message);
337
- return {
338
- success: false,
339
- counters: this.counters,
340
- detectedTypes: [],
341
- mode: "uninstall",
342
- errors,
343
- };
344
- }
345
- }
346
- /**
347
- * Process single uninstall entry and return updated counts
348
- * @param entry - Manifest entry to process for removal
349
- * @param stats - Current removal statistics
350
- * @param stats.removed - Number of files removed so far
351
- * @param stats.skipped - Number of files skipped so far
352
- * @returns Updated removal statistics after processing this entry
353
- */
354
- async processEntry(entry, stats) {
355
- const { logger } = this.deps;
356
- const destFile = path.join(this.config.destDir, entry.relativePath);
357
- switch (entry.strategy) {
358
- case "copy-overwrite":
359
- case "create-only": {
360
- if (await fse.pathExists(destFile)) {
361
- if (this.config.dryRun) {
362
- logger.dry(`Would remove: ${entry.relativePath}`);
363
- }
364
- else {
365
- await fse.remove(destFile);
366
- logger.success(`Removed: ${entry.relativePath}`);
367
- }
368
- return { ...stats, removed: stats.removed + 1 };
369
- }
370
- return { ...stats, skipped: stats.skipped + 1 };
371
- }
372
- case "copy-contents": {
373
- logger.warn(`Cannot auto-remove (copy-contents): ${entry.relativePath}`);
374
- logger.info(" Manually review and remove added lines if needed.");
375
- return { ...stats, skipped: stats.skipped + 1 };
376
- }
377
- case "merge":
378
- case "tagged-merge": {
379
- logger.warn(`Cannot auto-remove (merged JSON): ${entry.relativePath}`);
380
- logger.info(" Manually remove Lisa-added keys if needed.");
381
- return { ...stats, skipped: stats.skipped + 1 };
382
- }
383
- default:
384
- return { ...stats, skipped: stats.skipped + 1 };
385
- }
386
- }
387
- /**
388
- * Process manifest entries during uninstall
389
- * @param entries Manifest entries to process
390
- * @returns Stats with removed and skipped counts
391
- */
392
- async processUninstallEntries(entries) {
393
- const initial = { removed: 0, skipped: 0 };
394
- return await entries.reduce(async (statsPromise, entry) => {
395
- const stats = await statsPromise;
396
- return this.processEntry(entry, stats);
397
- }, Promise.resolve(initial));
398
- }
399
229
  /**
400
230
  * Process all files for a given project type
401
231
  * @param type Project type to process
@@ -437,9 +267,6 @@ export class Lisa {
437
267
  });
438
268
  const context = {
439
269
  config: this.config,
440
- recordFile: (relativePath, strat) => {
441
- this.deps.manifestService.record(relativePath, strat);
442
- },
443
270
  backupFile: async (absolutePath) => {
444
271
  await this.deps.backupService.backup(absolutePath);
445
272
  await this.deps.backupService.persistentBackup(absolutePath);
@@ -752,13 +579,24 @@ export class Lisa {
752
579
  this.tryReadFile(ciPath),
753
580
  this.tryReadFile(deployPath),
754
581
  ]);
582
+ const isRailsProject = this.detectedTypes.includes("rails");
755
583
  const notices = [
756
- ciContent?.includes("uses: ./.github/workflows/quality.yml")
584
+ ciContent?.includes("uses: ./.github/workflows/quality.yml") &&
585
+ !isRailsProject
757
586
  ? " .github/workflows/ci.yml — change:\n uses: ./.github/workflows/quality.yml\n → uses: CodySwannGT/lisa/.github/workflows/quality.yml@main"
758
587
  : null,
759
- deployContent?.includes("uses: ./.github/workflows/release.yml")
588
+ ciContent?.includes("uses: ./.github/workflows/quality.yml") &&
589
+ isRailsProject
590
+ ? " .github/workflows/ci.yml — change:\n uses: ./.github/workflows/quality.yml\n → uses: CodySwannGT/lisa/.github/workflows/quality-rails.yml@main"
591
+ : null,
592
+ deployContent?.includes("uses: ./.github/workflows/release.yml") &&
593
+ !isRailsProject
760
594
  ? " .github/workflows/deploy.yml — change:\n uses: ./.github/workflows/release.yml\n → uses: CodySwannGT/lisa/.github/workflows/release.yml@main"
761
595
  : null,
596
+ deployContent?.includes("uses: ./.github/workflows/release.yml") &&
597
+ isRailsProject
598
+ ? " .github/workflows/deploy.yml — change:\n uses: ./.github/workflows/release.yml\n → uses: CodySwannGT/lisa/.github/workflows/release-rails.yml@main"
599
+ : null,
762
600
  ].filter((n) => n !== null);
763
601
  if (notices.length === 0) {
764
602
  return;
@@ -771,38 +609,6 @@ export class Lisa {
771
609
  console.log(" After this one-time change, quality/release workflow updates will be automatic.");
772
610
  console.log("");
773
611
  }
774
- /**
775
- * Remove empty directories after uninstall
776
- */
777
- async removeEmptyDirectories() {
778
- const destDir = this.config.destDir;
779
- const removeEmpty = async (dir) => {
780
- if (dir === destDir)
781
- return;
782
- if (dir.includes(".git") || dir.includes("node_modules"))
783
- return;
784
- try {
785
- const entries = await readdir(dir);
786
- if (entries.length === 0) {
787
- await rmdir(dir);
788
- // Recursively check parent
789
- await removeEmpty(path.dirname(dir));
790
- }
791
- }
792
- catch {
793
- // Directory might not exist or not be empty
794
- }
795
- };
796
- // Get all directories and check if empty
797
- const entries = await readdir(destDir, { withFileTypes: true });
798
- for (const entry of entries) {
799
- if (entry.isDirectory() &&
800
- !entry.name.startsWith(".git") &&
801
- entry.name !== "node_modules") {
802
- await removeEmpty(path.join(destDir, entry.name));
803
- }
804
- }
805
- }
806
612
  }
807
- /* eslint-enable max-lines -- Main orchestrator class with apply/uninstall/validate operations */
613
+ /* eslint-enable max-lines -- Main orchestrator class with apply/validate operations */
808
614
  //# sourceMappingURL=lisa.js.map