tailar 0.4.1 → 0.5.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 (106) hide show
  1. package/README.md +4 -1
  2. package/README.npm.md +4 -1
  3. package/dist/api/client.d.ts +22 -28
  4. package/dist/api/client.d.ts.map +1 -1
  5. package/dist/api/client.js +111 -236
  6. package/dist/api/client.js.map +1 -1
  7. package/dist/api/errors.d.ts +16 -0
  8. package/dist/api/errors.d.ts.map +1 -0
  9. package/dist/api/errors.js +32 -0
  10. package/dist/api/errors.js.map +1 -0
  11. package/dist/auth/flow.js +1 -1
  12. package/dist/auth/flow.js.map +1 -1
  13. package/dist/commands/add.d.ts +9 -0
  14. package/dist/commands/add.d.ts.map +1 -1
  15. package/dist/commands/add.js +63 -113
  16. package/dist/commands/add.js.map +1 -1
  17. package/dist/commands/init.d.ts.map +1 -1
  18. package/dist/commands/init.js +106 -70
  19. package/dist/commands/init.js.map +1 -1
  20. package/dist/commands/list.d.ts.map +1 -1
  21. package/dist/commands/list.js +1 -23
  22. package/dist/commands/list.js.map +1 -1
  23. package/dist/commands/playground.d.ts.map +1 -1
  24. package/dist/commands/playground.js +2 -1
  25. package/dist/commands/playground.js.map +1 -1
  26. package/dist/commands/sync.d.ts.map +1 -1
  27. package/dist/commands/sync.js +9 -4
  28. package/dist/commands/sync.js.map +1 -1
  29. package/dist/installers/agent-files.d.ts +26 -0
  30. package/dist/installers/agent-files.d.ts.map +1 -0
  31. package/dist/installers/agent-files.js +110 -0
  32. package/dist/installers/agent-files.js.map +1 -0
  33. package/dist/installers/dependencies.d.ts +10 -0
  34. package/dist/installers/dependencies.d.ts.map +1 -1
  35. package/dist/installers/dependencies.js +52 -8
  36. package/dist/installers/dependencies.js.map +1 -1
  37. package/dist/installers/files.d.ts +2 -6
  38. package/dist/installers/files.d.ts.map +1 -1
  39. package/dist/installers/files.js +30 -35
  40. package/dist/installers/files.js.map +1 -1
  41. package/dist/installers/install-feature.d.ts +25 -1
  42. package/dist/installers/install-feature.d.ts.map +1 -1
  43. package/dist/installers/install-feature.js +100 -59
  44. package/dist/installers/install-feature.js.map +1 -1
  45. package/dist/installers/managed-blocks.d.ts +26 -0
  46. package/dist/installers/managed-blocks.d.ts.map +1 -0
  47. package/dist/installers/managed-blocks.js +47 -0
  48. package/dist/installers/managed-blocks.js.map +1 -0
  49. package/dist/installers/post-install.d.ts +12 -0
  50. package/dist/installers/post-install.d.ts.map +1 -1
  51. package/dist/installers/post-install.js +19 -0
  52. package/dist/installers/post-install.js.map +1 -1
  53. package/dist/installers/setup-guide.d.ts +38 -0
  54. package/dist/installers/setup-guide.d.ts.map +1 -0
  55. package/dist/installers/setup-guide.js +206 -0
  56. package/dist/installers/setup-guide.js.map +1 -0
  57. package/dist/installers/variant-switch.d.ts +34 -0
  58. package/dist/installers/variant-switch.d.ts.map +1 -0
  59. package/dist/installers/variant-switch.js +139 -0
  60. package/dist/installers/variant-switch.js.map +1 -0
  61. package/dist/installers/when.d.ts +22 -0
  62. package/dist/installers/when.d.ts.map +1 -0
  63. package/dist/installers/when.js +35 -0
  64. package/dist/installers/when.js.map +1 -0
  65. package/dist/registry/query.d.ts +6 -1
  66. package/dist/registry/query.d.ts.map +1 -1
  67. package/dist/registry/query.js +22 -0
  68. package/dist/registry/query.js.map +1 -1
  69. package/dist/types/config.d.ts +2 -0
  70. package/dist/types/config.d.ts.map +1 -1
  71. package/dist/types/registry.d.ts +65 -6
  72. package/dist/types/registry.d.ts.map +1 -1
  73. package/dist/types/wizard.d.ts +34 -8
  74. package/dist/types/wizard.d.ts.map +1 -1
  75. package/dist/types/wizard.js +74 -40
  76. package/dist/types/wizard.js.map +1 -1
  77. package/dist/utils/clack-wizard.d.ts +3 -1
  78. package/dist/utils/clack-wizard.d.ts.map +1 -1
  79. package/dist/utils/clack-wizard.js +205 -107
  80. package/dist/utils/clack-wizard.js.map +1 -1
  81. package/dist/utils/config.d.ts.map +1 -1
  82. package/dist/utils/config.js +12 -5
  83. package/dist/utils/config.js.map +1 -1
  84. package/dist/utils/init-flags.d.ts +43 -8
  85. package/dist/utils/init-flags.d.ts.map +1 -1
  86. package/dist/utils/init-flags.js +119 -32
  87. package/dist/utils/init-flags.js.map +1 -1
  88. package/dist/utils/local-options.js +1 -1
  89. package/dist/utils/local-options.js.map +1 -1
  90. package/dist/utils/next-steps.d.ts +9 -0
  91. package/dist/utils/next-steps.d.ts.map +1 -0
  92. package/dist/utils/next-steps.js +15 -0
  93. package/dist/utils/next-steps.js.map +1 -0
  94. package/dist/utils/presets.d.ts +34 -0
  95. package/dist/utils/presets.d.ts.map +1 -0
  96. package/dist/utils/presets.js +82 -0
  97. package/dist/utils/presets.js.map +1 -0
  98. package/dist/utils/recipe-id.d.ts +19 -0
  99. package/dist/utils/recipe-id.d.ts.map +1 -0
  100. package/dist/utils/recipe-id.js +72 -0
  101. package/dist/utils/recipe-id.js.map +1 -0
  102. package/dist/utils/recipe.d.ts +49 -0
  103. package/dist/utils/recipe.d.ts.map +1 -0
  104. package/dist/utils/recipe.js +227 -0
  105. package/dist/utils/recipe.js.map +1 -0
  106. package/package.json +2 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-files.js","sourceRoot":"","sources":["../../src/installers/agent-files.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,16 @@ export declare function mergeDependencies(projectPath: string, dependencyMaps: D
14
14
  };
15
15
  conflicts: string[];
16
16
  }>;
17
+ /**
18
+ * Read package.json as it is now, or null when there is none or it is invalid.
19
+ */
20
+ export declare function snapshotPackageJson(projectPath: string): Promise<Record<string, any> | null>;
21
+ /**
22
+ * Put back what an overriding package.json took away. Keys the new file
23
+ * already has win (so a base sync still updates the base versions); keys it
24
+ * lacks (module dependencies, scripts, the project name) come from `previous`.
25
+ */
26
+ export declare function restorePackageJson(projectPath: string, previous: Record<string, any>): Promise<boolean>;
17
27
  /**
18
28
  * Run package manager install
19
29
  */
@@ -1 +1 @@
1
- {"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../src/installers/dependencies.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAqBlE;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,aAAa,EAAE,GAC9B,OAAO,CAAC;IACT,KAAK,EAAE;QAAE,YAAY,EAAE,MAAM,EAAE,CAAC;QAAC,eAAe,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAC7D,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC,CAsID;AAcD;;GAEG;AACH,wBAAsB,UAAU,CAC9B,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,cAAc,EAC9B,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,OAAO,CAAC;CACb,GACL,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,GAAG,EACV,eAAe,CAAC,EAAE,MAAM,GACvB,aAAa,EAAE,CAiBjB"}
1
+ {"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../src/installers/dependencies.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAqBlE;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,aAAa,EAAE,GAC9B,OAAO,CAAC;IACT,KAAK,EAAE;QAAE,YAAY,EAAE,MAAM,EAAE,CAAC;QAAC,eAAe,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAC7D,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC,CAsID;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAMrC;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC5B,OAAO,CAAC,OAAO,CAAC,CAelB;AAcD;;GAEG;AACH,wBAAsB,UAAU,CAC9B,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,cAAc,EAC9B,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,OAAO,CAAC;CACb,GACL,OAAO,CAAC,IAAI,CAAC,CAmCf;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,GAAG,EACV,eAAe,CAAC,EAAE,MAAM,GACvB,aAAa,EAAE,CAiBjB"}
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import { readFile, writeFile } from "fs/promises";
7
7
  import { join } from "path";
8
- import { execSync } from "child_process";
8
+ import { spawn } from "child_process";
9
9
  import { getInstallCommand } from "../utils/package-manager.js";
10
10
  /**
11
11
  * Read package.json
@@ -134,6 +134,39 @@ export async function mergeDependencies(projectPath, dependencyMaps) {
134
134
  await writePackageJson(projectPath, pkg);
135
135
  return { added, conflicts };
136
136
  }
137
+ /**
138
+ * Read package.json as it is now, or null when there is none or it is invalid.
139
+ */
140
+ export async function snapshotPackageJson(projectPath) {
141
+ try {
142
+ return await readPackageJson(projectPath);
143
+ }
144
+ catch {
145
+ return null;
146
+ }
147
+ }
148
+ /**
149
+ * Put back what an overriding package.json took away. Keys the new file
150
+ * already has win (so a base sync still updates the base versions); keys it
151
+ * lacks (module dependencies, scripts, the project name) come from `previous`.
152
+ */
153
+ export async function restorePackageJson(projectPath, previous) {
154
+ const current = await readPackageJson(projectPath);
155
+ const next = { ...current };
156
+ for (const section of ["scripts", "dependencies", "devDependencies"]) {
157
+ if (!previous[section])
158
+ continue;
159
+ const merged = { ...previous[section], ...(current[section] ?? {}) };
160
+ next[section] =
161
+ section === "scripts" ? merged : sortObject(merged);
162
+ }
163
+ if (previous.name)
164
+ next.name = previous.name;
165
+ const changed = JSON.stringify(next) !== JSON.stringify(current);
166
+ if (changed)
167
+ await writePackageJson(projectPath, next);
168
+ return changed;
169
+ }
137
170
  /**
138
171
  * Sort object keys alphabetically
139
172
  */
@@ -154,15 +187,26 @@ export async function runInstall(projectPath, packageManager, options = {}) {
154
187
  if (packageManager === "npm") {
155
188
  command += " --legacy-peer-deps";
156
189
  }
157
- try {
158
- execSync(command, {
190
+ // Asynchronous on purpose: a blocking call would freeze the CLI spinner for
191
+ // the whole install and make the terminal look stuck.
192
+ await new Promise((resolve, reject) => {
193
+ const child = spawn(command, {
159
194
  cwd: projectPath,
160
- stdio: options.silent ? "ignore" : "inherit",
195
+ shell: true,
196
+ stdio: options.silent ? ["ignore", "ignore", "pipe"] : "inherit",
161
197
  });
162
- }
163
- catch (error) {
164
- throw new Error(`Failed to run ${command}: ${error}`);
165
- }
198
+ let stderr = "";
199
+ child.stderr?.on("data", (chunk) => {
200
+ stderr = (stderr + String(chunk)).slice(-2000);
201
+ });
202
+ child.on("error", (error) => reject(new Error(`Failed to run ${command}: ${error}`)));
203
+ child.on("close", (code) => {
204
+ if (code === 0)
205
+ resolve();
206
+ else
207
+ reject(new Error(`Failed to run ${command}: exited with code ${code}${stderr ? `\n${stderr.trim()}` : ""}`));
208
+ });
209
+ });
166
210
  }
167
211
  /**
168
212
  * Collect all dependencies from entry and its variants
@@ -1 +1 @@
1
- {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../src/installers/dependencies.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../src/installers/dependencies.ts"],"names":[],"mappings":"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"}
@@ -26,11 +26,11 @@ export declare function checkFileExists(projectPath: string, targetPath: string)
26
26
  */
27
27
  export declare function installFile(sourceContent: string, projectPath: string, targetPath: string, variables?: Record<string, string>, options?: {
28
28
  overwrite?: boolean;
29
- strategy?: "override" | "merge";
29
+ strategy?: "override" | "merge" | "managed";
30
30
  }): Promise<void>;
31
31
  /**
32
32
  * Install multiple files from file mappings.
33
- * Local registry mode reads sources from disk and skips purchase checks.
33
+ * Local registry mode reads sources from disk and skips login and licence checks.
34
34
  */
35
35
  export declare function installFiles(projectPath: string, fileMappings: FileMapping[], context: ProjectContext, variables: Record<string, string> | undefined, options: {
36
36
  overwrite?: boolean;
@@ -38,10 +38,6 @@ export declare function installFiles(projectPath: string, fileMappings: FileMapp
38
38
  componentType: "feature" | "block" | "component" | "template";
39
39
  componentName: string;
40
40
  variant?: string;
41
- registryEntry?: {
42
- requiresSubscription?: boolean;
43
- subscriptionTier?: number;
44
- };
45
41
  }): Promise<{
46
42
  installed: string[];
47
43
  skipped: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/installers/files.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKhE;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,cAAc,EACvB,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACrC,MAAM,CAuBR;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,MAAM,CASR;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,GACjB,MAAM,CAYR;AA8BD;;GAEG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAGT;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EACtC,OAAO,GAAE;IACP,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;CAC5B,GACL,OAAO,CAAC,IAAI,CAAC,CAmCf;AA0BD;;;GAGG;AACH,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,WAAW,EAAE,EAC3B,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,YAAK,EACtC,OAAO,EAAE;IACP,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,UAAU,CAAC;IAC9D,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE;QACd,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;CACH,GACA,OAAO,CAAC;IACT,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC,CA2HD"}
1
+ {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/installers/files.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAQhE;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,cAAc,EACvB,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACrC,MAAM,CAuBR;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,MAAM,CASR;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,GACjB,MAAM,CAYR;AA8BD;;GAEG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAGT;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EACtC,OAAO,GAAE;IACP,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;CACxC,GACL,OAAO,CAAC,IAAI,CAAC,CA2Cf;AA4BD;;;GAGG;AACH,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,WAAW,EAAE,EAC3B,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,YAAK,EACtC,OAAO,EAAE;IACP,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,UAAU,CAAC;IAC9D,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GACA,OAAO,CAAC;IACT,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC,CA6FD"}
@@ -7,8 +7,11 @@
7
7
  import { readFile, writeFile, mkdir } from "fs/promises";
8
8
  import { existsSync } from "fs";
9
9
  import { join, dirname } from "path";
10
- import { fetchComponentFile, checkSubscription } from "../api/client.js";
10
+ import { fetchComponentFile, requireLicence } from "../api/client.js";
11
+ import { isLicenceRequiredError } from "../api/errors.js";
11
12
  import { getLocalRegistry, readLocalComponentFile } from "../registry/local-mode.js";
13
+ import { evaluateWhen } from "./when.js";
14
+ import { mergeManagedContent, extractManagedBlocks } from "./managed-blocks.js";
12
15
  /**
13
16
  * Resolve template variables in a path
14
17
  */
@@ -51,7 +54,7 @@ export function mergeJsonContent(existingContent, newContent) {
51
54
  const newData = JSON.parse(newContent);
52
55
  // Deep merge the objects
53
56
  const merged = deepMerge(existing, newData);
54
- return JSON.stringify(merged, null, 2);
57
+ return JSON.stringify(merged, null, 2) + "\n";
55
58
  }
56
59
  catch (error) {
57
60
  throw new Error(`Failed to merge JSON: ${error}`);
@@ -96,8 +99,14 @@ export async function installFile(sourceContent, projectPath, targetPath, variab
96
99
  const fileExists = existsSync(fullTargetPath);
97
100
  // Apply template substitution
98
101
  let processedContent = applyTemplateSubstitution(sourceContent, variables);
99
- // Handle merge strategy for existing files
100
- if (fileExists && options.strategy === "merge") {
102
+ // Managed files keep user text; only the tailar blocks are replaced
103
+ if (fileExists &&
104
+ options.strategy === "managed" &&
105
+ extractManagedBlocks(processedContent).length > 0) {
106
+ const existingContent = await readFile(fullTargetPath, "utf-8");
107
+ processedContent = mergeManagedContent(existingContent, processedContent);
108
+ }
109
+ else if (fileExists && options.strategy === "merge") {
101
110
  // Check if it's a JSON file
102
111
  if (targetPath.endsWith(".json")) {
103
112
  const existingContent = await readFile(fullTargetPath, "utf-8");
@@ -110,6 +119,7 @@ export async function installFile(sourceContent, projectPath, targetPath, variab
110
119
  else if (fileExists &&
111
120
  !options.overwrite &&
112
121
  options.strategy !== "merge" &&
122
+ options.strategy !== "managed" &&
113
123
  options.strategy !== "override") {
114
124
  // File exists and we're not overwriting, merging, or using override strategy
115
125
  throw new Error(`File already exists: ${targetPath}`);
@@ -124,12 +134,13 @@ export async function installFile(sourceContent, projectPath, targetPath, variab
124
134
  /**
125
135
  * Fetch file content from API endpoint
126
136
  */
127
- async function fetchFileFromAPI(type, name, filePath, variant, requireAuth) {
137
+ async function fetchFileFromAPI(type, name, filePath, variant) {
128
138
  try {
129
- return await fetchComponentFile(type, name, filePath, { variant, requireAuth });
139
+ return await fetchComponentFile(type, name, filePath, { variant });
130
140
  }
131
141
  catch (error) {
132
- if (error instanceof Error && error.message.includes("Access denied")) {
142
+ if (isLicenceRequiredError(error) ||
143
+ (error instanceof Error && error.message.includes("Access denied"))) {
133
144
  throw error;
134
145
  }
135
146
  throw new Error(`Failed to fetch file from API: ${error instanceof Error ? error.message : String(error)}`);
@@ -137,42 +148,24 @@ async function fetchFileFromAPI(type, name, filePath, variant, requireAuth) {
137
148
  }
138
149
  /**
139
150
  * Install multiple files from file mappings.
140
- * Local registry mode reads sources from disk and skips purchase checks.
151
+ * Local registry mode reads sources from disk and skips login and licence checks.
141
152
  */
142
153
  export async function installFiles(projectPath, fileMappings, context, variables = {}, options) {
143
154
  const installed = [];
144
155
  const skipped = [];
145
156
  const conflicts = [];
146
157
  const local = getLocalRegistry();
147
- // Determine if authentication is required based on registry entry
148
- // This prevents repeated authentication prompts for paid components
149
- const requireAuth = !local?.enabled &&
150
- options.registryEntry?.requiresSubscription === true &&
151
- (options.registryEntry.subscriptionTier || 0) > 0;
152
- // Check subscription before installing.
158
+ // Registry files need a logged-in licence holder (checked once per run).
153
159
  // Local mode is for development and CI and does not talk to the API.
154
- // If registryEntry is provided and component is free, skip the check.
155
- if (!local?.enabled && options.componentType && options.componentName) {
156
- try {
157
- const accessCheck = await checkSubscription(options.componentType, options.componentName, options.registryEntry);
158
- if (!accessCheck.accessible) {
159
- throw new Error(accessCheck.reason ||
160
- "Subscription required. Visit https://tailar.dev/choose-plan to upgrade.");
161
- }
162
- }
163
- catch (error) {
164
- // Always throw subscription/authentication errors - don't silently continue
165
- if (error instanceof Error &&
166
- (error.message.includes("Subscription") ||
167
- error.message.includes("Authentication") ||
168
- error.message.includes("Access denied"))) {
169
- throw error;
170
- }
171
- // For other errors, also throw to prevent installation without proper verification
172
- throw new Error(`Failed to verify subscription access: ${error instanceof Error ? error.message : String(error)}`);
173
- }
160
+ if (!local?.enabled && !options.dryRun) {
161
+ await requireLicence();
174
162
  }
175
163
  for (const mapping of fileMappings) {
164
+ // Files that depend on other installed features (db, auth)
165
+ if (!evaluateWhen(mapping.when, context.config, context.plannedFeatures)) {
166
+ skipped.push(mapping.target);
167
+ continue;
168
+ }
176
169
  // Resolve target path
177
170
  const targetPath = resolveTemplatePath(mapping.target, context, variables);
178
171
  // Determine strategy (default to override)
@@ -208,7 +201,7 @@ export async function installFiles(projectPath, fileMappings, context, variables
208
201
  sourceContent = await readLocalComponentFile(local.componentsPath, options.componentType, options.componentName, effectiveSource);
209
202
  }
210
203
  else {
211
- sourceContent = await fetchFileFromAPI(options.componentType, options.componentName, effectiveSource, options.variant, requireAuth);
204
+ sourceContent = await fetchFileFromAPI(options.componentType, options.componentName, effectiveSource, options.variant);
212
205
  }
213
206
  // Install file
214
207
  await installFile(sourceContent, projectPath, targetPath, variables, {
@@ -218,6 +211,8 @@ export async function installFiles(projectPath, fileMappings, context, variables
218
211
  installed.push(targetPath);
219
212
  }
220
213
  catch (error) {
214
+ if (isLicenceRequiredError(error))
215
+ throw error;
221
216
  throw new Error(`Failed to install ${targetPath}: ${error}`);
222
217
  }
223
218
  }
@@ -1 +1 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/installers/files.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAErC,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAGrF;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAAY,EACZ,OAAuB,EACvB,YAAoC,EAAE;IAEtC,IAAI,QAAQ,GAAG,IAAI,CAAC;IAEpB,qBAAqB;IACrB,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;IAElE,MAAM,YAAY,GAAG;QACnB,OAAO,EAAE,MAAM;QACf,OAAO,EAAE,MAAM;QACf,GAAG,SAAS;KACb,CAAC;IAEF,wBAAwB;IACxB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QACxD,MAAM,WAAW,GAAG,KAAK,GAAG,IAAI,CAAC;QACjC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IACnE,CAAC;IAED,+BAA+B;IAC/B,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAE5D,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,OAAe,EACf,SAAiC;IAEjC,IAAI,MAAM,GAAG,OAAO,CAAC;IAErB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACrD,MAAM,WAAW,GAAG,KAAK,GAAG,IAAI,CAAC;QACjC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,eAAuB,EACvB,UAAkB;IAElB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAEvC,yBAAyB;QACzB,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE5C,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,MAAW,EAAE,MAAW;IACzC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAE7B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACnD,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CAAC,KAAU;IAC1B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,WAAmB,EACnB,UAAkB;IAElB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAC/C,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,aAAqB,EACrB,WAAmB,EACnB,UAAkB,EAClB,YAAoC,EAAE,EACtC,UAGI,EAAE;IAEN,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IAE9C,8BAA8B;IAC9B,IAAI,gBAAgB,GAAG,yBAAyB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAE3E,2CAA2C;IAC3C,IAAI,UAAU,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC/C,4BAA4B;QAC5B,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACjC,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YAChE,gBAAgB,GAAG,gBAAgB,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;QACzE,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CACb,iDAAiD,UAAU,EAAE,CAC9D,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,IACL,UAAU;QACV,CAAC,OAAO,CAAC,SAAS;QAClB,OAAO,CAAC,QAAQ,KAAK,OAAO;QAC5B,OAAO,CAAC,QAAQ,KAAK,UAAU,EAC/B,CAAC;QACD,6EAA6E;QAC7E,MAAM,IAAI,KAAK,CAAC,wBAAwB,UAAU,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,0EAA0E;IAE1E,0BAA0B;IAC1B,MAAM,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACpC,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEtC,aAAa;IACb,MAAM,SAAS,CAAC,cAAc,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;AAC7D,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,gBAAgB,CAC7B,IAAoD,EACpD,IAAY,EACZ,QAAgB,EAChB,OAAgB,EAChB,WAAqB;IAErB,IAAI,CAAC;QACH,OAAO,MAAM,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;IAClF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YACtE,MAAM,KAAK,CAAC;QACd,CAAC;QACD,MAAM,IAAI,KAAK,CACb,kCACE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CACvD,EAAE,CACH,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,WAAmB,EACnB,YAA2B,EAC3B,OAAuB,EACvB,YAAoC,EAAE,EACtC,OAUC;IAMD,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;IAEjC,kEAAkE;IAClE,oEAAoE;IACpE,MAAM,WAAW,GACf,CAAC,KAAK,EAAE,OAAO;QACf,OAAO,CAAC,aAAa,EAAE,oBAAoB,KAAK,IAAI;QACpD,CAAC,OAAO,CAAC,aAAa,CAAC,gBAAgB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAEpD,wCAAwC;IACxC,qEAAqE;IACrE,sEAAsE;IACtE,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QACtE,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,iBAAiB,CACzC,OAAO,CAAC,aAAa,EACrB,OAAO,CAAC,aAAa,EACrB,OAAO,CAAC,aAAa,CACtB,CAAC;YACF,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CACb,WAAW,CAAC,MAAM;oBAChB,yEAAyE,CAC5E,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,4EAA4E;YAC5E,IACE,KAAK,YAAY,KAAK;gBACtB,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;oBACrC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;oBACxC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,EAC1C,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;YACD,mFAAmF;YACnF,MAAM,IAAI,KAAK,CACb,yCACE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CACvD,EAAE,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;QACnC,sBAAsB;QACtB,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAE3E,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,UAAU,CAAC;QAEhD,sEAAsE;QACtE,+EAA+E;QAC/E,mFAAmF;QACnF,IACE,CAAC,OAAO,CAAC,QAAQ;YACjB,eAAe,CAAC,WAAW,EAAE,UAAU,CAAC;YACxC,CAAC,OAAO,CAAC,SAAS,EAClB,CAAC;YACD,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC3B,SAAS;QACX,CAAC;QAED,0EAA0E;QAC1E,MAAM,kBAAkB,GACtB,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,QAAQ,KAAK,UAAU,CAAC;QAEvD,kBAAkB;QAClB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC3B,SAAS;QACX,CAAC;QAED,IAAI,CAAC;YACH,IAAI,aAAqB,CAAC;YAE1B,+DAA+D;YAC/D,IAAI,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;YACrC,IAAI,OAAO,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC;gBAC1B,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,CACzD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CACvB,CAAC;gBACF,IAAI,SAAS,EAAE,OAAO,EAAE,CAAC;oBACvB,eAAe;wBACb,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC;gBAC9D,CAAC;YACH,CAAC;YAED,IAAI,KAAK,EAAE,OAAO,EAAE,CAAC;gBACnB,aAAa,GAAG,MAAM,sBAAsB,CAC1C,KAAK,CAAC,cAAc,EACpB,OAAO,CAAC,aAAa,EACrB,OAAO,CAAC,aAAa,EACrB,eAAe,CAChB,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,aAAa,GAAG,MAAM,gBAAgB,CACpC,OAAO,CAAC,aAAa,EACrB,OAAO,CAAC,aAAa,EACrB,eAAe,EACf,OAAO,CAAC,OAAO,EACf,WAAW,CACZ,CAAC;YACJ,CAAC;YAED,eAAe;YACf,MAAM,WAAW,CAAC,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE;gBACnE,SAAS,EAAE,kBAAkB;gBAC7B,QAAQ,EAAE,QAAQ;aACnB,CAAC,CAAC;YAEH,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,qBAAqB,UAAU,KAAK,KAAK,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/installers/files.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Programmatic install of a registry feature (same pipeline as tailar add).
3
3
  */
4
- import type { ProjectConfig } from '../types/index.js';
4
+ import type { ProjectConfig, RegistryEntry } from '../types/index.js';
5
5
  export interface InstallFeatureOptions {
6
6
  yes?: boolean;
7
7
  force?: boolean;
@@ -14,6 +14,8 @@ export interface InstallFeatureOptions {
14
14
  * installation. Keys must already be UPPER_SNAKE_CASE (e.g. PROJECT_NAME).
15
15
  */
16
16
  extraVars?: Record<string, string>;
17
+ /** Features selected for the same run; `when` treats them as present. */
18
+ plannedFeatures?: string[];
17
19
  }
18
20
  export interface InstallFeatureResult {
19
21
  postInstallSteps: unknown[];
@@ -23,6 +25,28 @@ export interface InstallFeatureResult {
23
25
  }
24
26
  /** Variant already recorded in .tailar.json, if this entry was installed before. */
25
27
  export declare function installedVariantFor(config: ProjectConfig | null | undefined, name: string): string | undefined;
28
+ /**
29
+ * Refuse to reinstall an entry over an app generated with a variant the
30
+ * registry no longer ships. Copying the new files over old data would break
31
+ * the app, so the registry names the migration instead.
32
+ */
33
+ export declare function assertNotLegacyVariant(entry: Pick<RegistryEntry, 'name' | 'legacyVariants'>, config: ProjectConfig | null | undefined): void;
34
+ export interface VariantSelectionInput {
35
+ variant?: string;
36
+ provider?: string;
37
+ /** True when the caller supplied preset answers (a remembered variant is then not reused). */
38
+ presetAnswers?: boolean;
39
+ answers: Record<string, unknown>;
40
+ }
41
+ /**
42
+ * Pick the variant to install for an entry. Shared by `installFeature`
43
+ * (init, sync) and `tailar add`.
44
+ *
45
+ * A variant picked by looking at another feature (resolver.detect) is
46
+ * detected again, so `sync` follows a changed auth or db. Variants chosen
47
+ * by the user are remembered.
48
+ */
49
+ export declare function resolveSelectedVariant(entry: RegistryEntry, config: ProjectConfig | null | undefined, input: VariantSelectionInput): string | undefined;
26
50
  /**
27
51
  * Install a single registry entry by name. Caller must install dependencies first if needed.
28
52
  */
@@ -1 +1 @@
1
- {"version":3,"file":"install-feature.d.ts","sourceRoot":"","sources":["../../src/installers/install-feature.ts"],"names":[],"mappings":"AAAA;;GAEG;AAsBH,OAAO,KAAK,EAAE,aAAa,EAAkB,MAAM,mBAAmB,CAAC;AAMvE,MAAM,WAAW,qBAAqB;IACpC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,OAAO,EAAE,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;IACzB,+CAA+C;IAC/C,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED,oFAAoF;AACpF,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,EACxC,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,SAAS,CASpB;AAYD;;GAEG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,oBAAoB,CAAC,CA4K/B"}
1
+ {"version":3,"file":"install-feature.d.ts","sourceRoot":"","sources":["../../src/installers/install-feature.ts"],"names":[],"mappings":"AAAA;;GAEG;AA8BH,OAAO,KAAK,EAAE,aAAa,EAAkB,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAItF,MAAM,WAAW,qBAAqB;IACpC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,yEAAyE;IACzE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,OAAO,EAAE,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;IACzB,+CAA+C;IAC/C,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED,oFAAoF;AACpF,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,EACxC,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,SAAS,CASpB;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,gBAAgB,CAAC,EACrD,MAAM,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,GACvC,IAAI,CAQN;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8FAA8F;IAC9F,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,EACxC,KAAK,EAAE,qBAAqB,GAC3B,MAAM,GAAG,SAAS,CAgDpB;AAYD;;GAEG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,oBAAoB,CAAC,CAmJ/B"}
@@ -10,11 +10,12 @@ import { loadRegistry } from '../registry/loader.js';
10
10
  import { getEntry, getVariant } from '../registry/query.js';
11
11
  import { runPrompts } from '../utils/prompts.js';
12
12
  import { installFiles } from './files.js';
13
- import { mergeDependencies, collectDependencies } from './dependencies.js';
13
+ import { evaluateWhen } from './when.js';
14
+ import { installAgentFiles } from './agent-files.js';
15
+ import { cleanupPreviousVariant } from './variant-switch.js';
16
+ import { mergeDependencies, collectDependencies, snapshotPackageJson, restorePackageJson, } from './dependencies.js';
14
17
  import { collectTemplateVariables, extractVariablesFromAnswers, mergeVariables, } from './templates.js';
15
- import { isAuthenticated, authenticate } from '../auth/flow.js';
16
- import { checkSubscription } from '../api/client.js';
17
- import { getLocalRegistry } from '../registry/local-mode.js';
18
+ import { requireLicence } from '../api/client.js';
18
19
  import { logger } from '../utils/logger.js';
19
20
  /** Variant already recorded in .tailar.json, if this entry was installed before. */
20
21
  export function installedVariantFor(config, name) {
@@ -28,6 +29,72 @@ export function installedVariantFor(config, name) {
28
29
  ];
29
30
  return items.find((item) => item.name === name)?.variant;
30
31
  }
32
+ /**
33
+ * Refuse to reinstall an entry over an app generated with a variant the
34
+ * registry no longer ships. Copying the new files over old data would break
35
+ * the app, so the registry names the migration instead.
36
+ */
37
+ export function assertNotLegacyVariant(entry, config) {
38
+ const installed = installedVariantFor(config, entry.name);
39
+ const message = installed ? entry.legacyVariants?.[installed] : undefined;
40
+ if (message) {
41
+ throw new Error(`${entry.name} was installed with the retired "${installed}" variant. ${message}`);
42
+ }
43
+ }
44
+ /**
45
+ * Pick the variant to install for an entry. Shared by `installFeature`
46
+ * (init, sync) and `tailar add`.
47
+ *
48
+ * A variant picked by looking at another feature (resolver.detect) is
49
+ * detected again, so `sync` follows a changed auth or db. Variants chosen
50
+ * by the user are remembered.
51
+ */
52
+ export function resolveSelectedVariant(entry, config, input) {
53
+ const { answers } = input;
54
+ const rememberedVariant = !input.variant &&
55
+ !input.provider &&
56
+ !input.presetAnswers &&
57
+ !entry.variantResolver?.detect
58
+ ? installedVariantFor(config, entry.name)
59
+ : undefined;
60
+ if (input.variant)
61
+ return input.variant;
62
+ if (rememberedVariant)
63
+ return rememberedVariant;
64
+ if (typeof answers.variant === 'string')
65
+ return answers.variant;
66
+ const resolver = entry.variantResolver;
67
+ if (!resolver)
68
+ return undefined;
69
+ let selected;
70
+ if (resolver.detect && config) {
71
+ const installedFeature = config.installed.features.find((f) => f.name === resolver.detect);
72
+ if (installedFeature?.variant) {
73
+ if (resolver.mapping) {
74
+ const mapped = resolver.mapping[installedFeature.variant];
75
+ selected = mapped || installedFeature.variant;
76
+ }
77
+ else {
78
+ selected = installedFeature.variant;
79
+ }
80
+ }
81
+ }
82
+ if (!selected && resolver.answerKey) {
83
+ const answerValue = input.provider ?? answers[resolver.answerKey];
84
+ if (answerValue !== undefined) {
85
+ if (resolver.mapping) {
86
+ const mapped = resolver.mapping[String(answerValue)];
87
+ selected = mapped || String(answerValue);
88
+ }
89
+ else {
90
+ selected = String(answerValue);
91
+ }
92
+ }
93
+ }
94
+ if (!selected && resolver.default)
95
+ selected = resolver.default;
96
+ return selected;
97
+ }
31
98
  function defaultAnswersFromQuestions(questions) {
32
99
  const out = {};
33
100
  for (const q of questions) {
@@ -51,22 +118,16 @@ export async function installFeature(projectPath, name, options = {}) {
51
118
  packageManager,
52
119
  structure,
53
120
  config,
121
+ ...(options.plannedFeatures ? { plannedFeatures: options.plannedFeatures } : {}),
54
122
  };
55
123
  const registry = await loadRegistry();
56
124
  const entry = getEntry(registry, name);
57
125
  if (!entry) {
58
126
  throw new Error(`Entry not found: ${name}`);
59
127
  }
60
- const requiresSubscription = entry.requiresSubscription === true && (entry.subscriptionTier || 0) > 0;
61
- if (requiresSubscription && !getLocalRegistry()?.enabled) {
62
- if (!(await isAuthenticated())) {
63
- await authenticate();
64
- }
65
- const accessCheck = await checkSubscription(entry.type, name);
66
- if (!accessCheck.accessible) {
67
- throw new Error(accessCheck.reason || 'Subscription required');
68
- }
69
- }
128
+ assertNotLegacyVariant(entry, config);
129
+ // Registry files need a logged-in licence holder; no-op in local mode.
130
+ await requireLicence();
70
131
  let answers = {};
71
132
  if (entry.questions && entry.questions.length > 0) {
72
133
  if (options.presetAnswers) {
@@ -98,49 +159,12 @@ export async function installFeature(projectPath, name, options = {}) {
98
159
  }
99
160
  if (options.variant)
100
161
  answers.variant = options.variant;
101
- const rememberedVariant = !options.variant && !options.provider && !options.presetAnswers
102
- ? installedVariantFor(context.config, name)
103
- : undefined;
104
- let selectedVariant;
105
- if (options.variant) {
106
- selectedVariant = options.variant;
107
- }
108
- else if (rememberedVariant) {
109
- selectedVariant = rememberedVariant;
110
- }
111
- else if (typeof answers.variant === 'string') {
112
- selectedVariant = answers.variant;
113
- }
114
- else if (entry.variantResolver) {
115
- const resolver = entry.variantResolver;
116
- if (resolver.detect && context.config) {
117
- const installedFeature = context.config.installed.features.find((f) => f.name === resolver.detect);
118
- if (installedFeature?.variant) {
119
- if (resolver.mapping) {
120
- const mapped = resolver.mapping[installedFeature.variant];
121
- selectedVariant = mapped || installedFeature.variant;
122
- }
123
- else {
124
- selectedVariant = installedFeature.variant;
125
- }
126
- }
127
- }
128
- if (!selectedVariant && resolver.answerKey) {
129
- const answerValue = options.provider ?? answers[resolver.answerKey];
130
- if (answerValue !== undefined) {
131
- if (resolver.mapping) {
132
- const mapped = resolver.mapping[String(answerValue)];
133
- selectedVariant = mapped || String(answerValue);
134
- }
135
- else {
136
- selectedVariant = String(answerValue);
137
- }
138
- }
139
- }
140
- if (!selectedVariant && resolver.default) {
141
- selectedVariant = resolver.default;
142
- }
143
- }
162
+ const selectedVariant = resolveSelectedVariant(entry, context.config, {
163
+ variant: options.variant,
164
+ provider: options.provider,
165
+ presetAnswers: Boolean(options.presetAnswers),
166
+ answers,
167
+ });
144
168
  const variant = selectedVariant ? getVariant(entry, selectedVariant) : undefined;
145
169
  let templateVars = {};
146
170
  if (entry.templates && entry.templates.length > 0) {
@@ -153,17 +177,32 @@ export async function installFeature(projectPath, name, options = {}) {
153
177
  let files = [...entry.files];
154
178
  if (variant?.files)
155
179
  files.push(...variant.files);
180
+ // Read before the install records the new variant
181
+ const previousVariant = installedVariantFor(context.config, name);
182
+ // An entry that overrides package.json (base) must not drop what other
183
+ // modules and the user added to it, e.g. on `tailar sync base`.
184
+ const overridesPackageJson = files.some((f) => f.target === 'package.json' && (f.strategy ?? 'override') === 'override');
185
+ const packageBefore = overridesPackageJson
186
+ ? await snapshotPackageJson(context.root)
187
+ : null;
156
188
  const result = await installFiles(context.root, files, context, allVars, {
157
189
  overwrite: options.force || true,
158
190
  componentType: entry.type,
159
191
  componentName: entry.name,
160
192
  variant: selectedVariant,
161
- registryEntry: entry,
162
193
  });
163
194
  if (result.conflicts.length > 0 && !options.force) {
164
195
  throw new Error(`File conflicts: ${result.conflicts.join(', ')}`);
165
196
  }
197
+ if (packageBefore) {
198
+ await restorePackageJson(context.root, packageBefore);
199
+ }
166
200
  logger.success(`Installed ${result.installed.length} files for ${entry.label}`);
201
+ await cleanupPreviousVariant(entry, previousVariant, selectedVariant, context, allVars);
202
+ const agentFiles = await installAgentFiles(context.root, entry.name);
203
+ if (agentFiles.length > 0) {
204
+ logger.success(`Wrote ${agentFiles.length} agent files for ${entry.label}`);
205
+ }
167
206
  const deps = collectDependencies(entry, selectedVariant);
168
207
  let hasDependencies = false;
169
208
  let dependenciesChanged = false;
@@ -178,7 +217,9 @@ export async function installFeature(projectPath, name, options = {}) {
178
217
  const postInstallSteps = [
179
218
  ...(entry.postInstall || []),
180
219
  ...(variant?.postInstall || []),
181
- ];
220
+ ]
221
+ .filter((step) => evaluateWhen(step.when, context.config, context.plannedFeatures))
222
+ .map((step) => ({ ...step, source: entry.name, sourceLabel: entry.label }));
182
223
  const provider = options.provider ||
183
224
  answers.emailProvider ||
184
225
  answers.dbProvider;