@salesforce/webapps-features-experimental 1.68.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 (52) hide show
  1. package/LICENSE.txt +82 -0
  2. package/README.md +154 -0
  3. package/dist/conflict-detector.d.ts +31 -0
  4. package/dist/conflict-detector.d.ts.map +1 -0
  5. package/dist/conflict-detector.js +153 -0
  6. package/dist/conflict-detector.js.map +1 -0
  7. package/dist/dependency-resolver.d.ts +18 -0
  8. package/dist/dependency-resolver.d.ts.map +1 -0
  9. package/dist/dependency-resolver.js +90 -0
  10. package/dist/dependency-resolver.js.map +1 -0
  11. package/dist/feature-metadata.d.ts +35 -0
  12. package/dist/feature-metadata.d.ts.map +1 -0
  13. package/dist/feature-metadata.js +140 -0
  14. package/dist/feature-metadata.js.map +1 -0
  15. package/dist/feature-search.d.ts +11 -0
  16. package/dist/feature-search.d.ts.map +1 -0
  17. package/dist/feature-search.js +121 -0
  18. package/dist/feature-search.js.map +1 -0
  19. package/dist/features.json +336 -0
  20. package/dist/file-copier.d.ts +15 -0
  21. package/dist/file-copier.d.ts.map +1 -0
  22. package/dist/file-copier.js +105 -0
  23. package/dist/file-copier.js.map +1 -0
  24. package/dist/install-feature.d.ts +8 -0
  25. package/dist/install-feature.d.ts.map +1 -0
  26. package/dist/install-feature.js +563 -0
  27. package/dist/install-feature.js.map +1 -0
  28. package/dist/logger.d.ts +48 -0
  29. package/dist/logger.d.ts.map +1 -0
  30. package/dist/logger.js +82 -0
  31. package/dist/logger.js.map +1 -0
  32. package/dist/package-manager.d.ts +22 -0
  33. package/dist/package-manager.d.ts.map +1 -0
  34. package/dist/package-manager.js +172 -0
  35. package/dist/package-manager.js.map +1 -0
  36. package/dist/placeholder-resolver.d.ts +25 -0
  37. package/dist/placeholder-resolver.d.ts.map +1 -0
  38. package/dist/placeholder-resolver.js +78 -0
  39. package/dist/placeholder-resolver.js.map +1 -0
  40. package/dist/schema-loader.d.ts +17 -0
  41. package/dist/schema-loader.d.ts.map +1 -0
  42. package/dist/schema-loader.js +82 -0
  43. package/dist/schema-loader.js.map +1 -0
  44. package/dist/types.d.ts +146 -0
  45. package/dist/types.d.ts.map +1 -0
  46. package/dist/types.js +7 -0
  47. package/dist/types.js.map +1 -0
  48. package/dist/utils.d.ts +30 -0
  49. package/dist/utils.d.ts.map +1 -0
  50. package/dist/utils.js +58 -0
  51. package/dist/utils.js.map +1 -0
  52. package/package.json +53 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-feature.js","sourceRoot":"","sources":["../src/install-feature.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Copyright (c) 2026, Salesforce, Inc.,
3
+ * All rights reserved.
4
+ * For full license text, see the LICENSE.txt file
5
+ */
6
+ export declare class Logger {
7
+ private verbose;
8
+ constructor(verbose?: boolean);
9
+ /**
10
+ * Log info message
11
+ */
12
+ info(message: string, ...args: unknown[]): void;
13
+ /**
14
+ * Log warning message
15
+ */
16
+ warn(message: string, ...args: unknown[]): void;
17
+ /**
18
+ * Log error message with optional stack trace in verbose mode
19
+ */
20
+ error(message: string, error?: Error): void;
21
+ /**
22
+ * Log debug message (only in verbose mode)
23
+ */
24
+ debug(message: string, ...args: unknown[]): void;
25
+ /**
26
+ * Log success message
27
+ */
28
+ success(message: string, ...args: unknown[]): void;
29
+ /**
30
+ * Log a section header (e.g. ── Installing dependency: shadcn ──────)
31
+ * Prints two blank lines before the header for visual separation.
32
+ */
33
+ section(title: string): void;
34
+ /**
35
+ * Log a section footer (e.g. ── Dependency installed: shadcn ──────)
36
+ * Prints one blank line before the footer.
37
+ */
38
+ sectionEnd(title: string): void;
39
+ /**
40
+ * Log a plain indented message (no prefix) for use inside sections.
41
+ */
42
+ plain(message: string): void;
43
+ /**
44
+ * Print a blank line.
45
+ */
46
+ blank(): void;
47
+ }
48
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,qBAAa,MAAM;IAClB,OAAO,CAAC,OAAO,CAAU;gBAEb,OAAO,UAAQ;IAI3B;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI/C;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI/C;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI;IAO3C;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAMhD;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAIlD;;;OAGG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAS5B;;;OAGG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQ/B;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI5B;;OAEG;IACH,KAAK,IAAI,IAAI;CAGb"}
package/dist/logger.js ADDED
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Copyright (c) 2026, Salesforce, Inc.,
3
+ * All rights reserved.
4
+ * For full license text, see the LICENSE.txt file
5
+ */
6
+ export class Logger {
7
+ verbose;
8
+ constructor(verbose = false) {
9
+ this.verbose = verbose;
10
+ }
11
+ /**
12
+ * Log info message
13
+ */
14
+ info(message, ...args) {
15
+ console.log(`[INFO] ${message}`, ...args);
16
+ }
17
+ /**
18
+ * Log warning message
19
+ */
20
+ warn(message, ...args) {
21
+ console.warn(`[WARN] ${message}`, ...args);
22
+ }
23
+ /**
24
+ * Log error message with optional stack trace in verbose mode
25
+ */
26
+ error(message, error) {
27
+ console.error(`[ERROR] ${message}`);
28
+ if (error && this.verbose && error.stack) {
29
+ console.error(error.stack);
30
+ }
31
+ }
32
+ /**
33
+ * Log debug message (only in verbose mode)
34
+ */
35
+ debug(message, ...args) {
36
+ if (this.verbose) {
37
+ console.log(`[DEBUG] ${message}`, ...args);
38
+ }
39
+ }
40
+ /**
41
+ * Log success message
42
+ */
43
+ success(message, ...args) {
44
+ console.log(`[SUCCESS] ${message}`, ...args);
45
+ }
46
+ /**
47
+ * Log a section header (e.g. ── Installing dependency: shadcn ──────)
48
+ * Prints two blank lines before the header for visual separation.
49
+ */
50
+ section(title) {
51
+ const prefix = `── ${title} `;
52
+ const remaining = Math.max(3, 56 - prefix.length);
53
+ const line = "─".repeat(remaining);
54
+ console.log();
55
+ console.log();
56
+ console.log(`${prefix}${line}`);
57
+ }
58
+ /**
59
+ * Log a section footer (e.g. ── Dependency installed: shadcn ──────)
60
+ * Prints one blank line before the footer.
61
+ */
62
+ sectionEnd(title) {
63
+ const prefix = `── ${title} `;
64
+ const remaining = Math.max(3, 56 - prefix.length);
65
+ const line = "─".repeat(remaining);
66
+ console.log();
67
+ console.log(`${prefix}${line}`);
68
+ }
69
+ /**
70
+ * Log a plain indented message (no prefix) for use inside sections.
71
+ */
72
+ plain(message) {
73
+ console.log(` ${message}`);
74
+ }
75
+ /**
76
+ * Print a blank line.
77
+ */
78
+ blank() {
79
+ console.log();
80
+ }
81
+ }
82
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,OAAO,MAAM;IACV,OAAO,CAAU;IAEzB,YAAY,OAAO,GAAG,KAAK;QAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,OAAe,EAAE,GAAG,IAAe;QACvC,OAAO,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,OAAe,EAAE,GAAG,IAAe;QACvC,OAAO,CAAC,IAAI,CAAC,UAAU,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAe,EAAE,KAAa;QACnC,OAAO,CAAC,KAAK,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC;QACpC,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC1C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAe,EAAE,GAAG,IAAe;QACxC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,WAAW,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;QAC5C,CAAC;IACF,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,OAAe,EAAE,GAAG,IAAe;QAC1C,OAAO,CAAC,GAAG,CAAC,aAAa,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,KAAa;QACpB,MAAM,MAAM,GAAG,MAAM,KAAK,GAAG,CAAC;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,EAAE,CAAC,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,KAAa;QACvB,MAAM,MAAM,GAAG,MAAM,KAAK,GAAG,CAAC;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,EAAE,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAe;QACpB,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,KAAK;QACJ,OAAO,CAAC,GAAG,EAAE,CAAC;IACf,CAAC;CACD"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Copyright (c) 2026, Salesforce, Inc.,
3
+ * All rights reserved.
4
+ * For full license text, see the LICENSE.txt file
5
+ */
6
+ import type { FileCopySchema, InstallationContext } from "./types.js";
7
+ /**
8
+ * Install a single npm package and ensure it's saved to package.json.
9
+ * npm output is suppressed by default; shown on verbose or error.
10
+ */
11
+ export declare function installPackage(packageName: string, isDev: boolean, webappDir: string, dryRun?: boolean, verbose?: boolean): Promise<void>;
12
+ /**
13
+ * Install package dependencies from schema.
14
+ * Merges dependencies into package.json and runs npm install with a spinner.
15
+ */
16
+ export declare function installPackageDependencies(schema: FileCopySchema, context: InstallationContext): Promise<void>;
17
+ /**
18
+ * Check if a package is already installed and listed in package.json
19
+ * This ensures the package won't be removed by subsequent npm install commands
20
+ */
21
+ export declare function isPackageInstalled(packageName: string, webappDir: string): boolean;
22
+ //# sourceMappingURL=package-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../src/package-manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAkCtE;;;GAGG;AACH,wBAAsB,cAAc,CACnC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,MAAM,EACjB,MAAM,UAAQ,EACd,OAAO,UAAQ,GACb,OAAO,CAAC,IAAI,CAAC,CAkBf;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,CAC/C,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,mBAAmB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAmGf;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAoBlF"}
@@ -0,0 +1,172 @@
1
+ /**
2
+ * Copyright (c) 2026, Salesforce, Inc.,
3
+ * All rights reserved.
4
+ * For full license text, see the LICENSE.txt file
5
+ */
6
+ import { spawn } from "child_process";
7
+ import { existsSync, readFileSync, writeFileSync } from "fs";
8
+ import { join } from "path";
9
+ import ora from "ora";
10
+ import { Logger } from "./logger.js";
11
+ const fallbackLogger = new Logger();
12
+ /**
13
+ * Run an npm command asynchronously, capturing output.
14
+ * Returns stdout on success; throws with captured output on failure.
15
+ */
16
+ function runNpm(args, cwd) {
17
+ return new Promise((resolve, reject) => {
18
+ const child = spawn("npm", args, {
19
+ cwd,
20
+ stdio: "pipe",
21
+ });
22
+ let stdout = "";
23
+ let stderr = "";
24
+ child.stdout.on("data", (data) => {
25
+ stdout += data.toString();
26
+ });
27
+ child.stderr.on("data", (data) => {
28
+ stderr += data.toString();
29
+ });
30
+ child.on("close", (code) => {
31
+ if (code !== 0) {
32
+ reject(new Error(`npm ${args.join(" ")} failed (exit code ${code}):\n${stderr}\n${stdout}`));
33
+ }
34
+ else {
35
+ resolve(stdout);
36
+ }
37
+ });
38
+ });
39
+ }
40
+ /**
41
+ * Install a single npm package and ensure it's saved to package.json.
42
+ * npm output is suppressed by default; shown on verbose or error.
43
+ */
44
+ export async function installPackage(packageName, isDev, webappDir, dryRun = false, verbose = false) {
45
+ if (dryRun) {
46
+ return;
47
+ }
48
+ const saveFlag = isDev ? "--save-dev" : "--save";
49
+ try {
50
+ const output = await runNpm(["install", saveFlag, packageName], webappDir);
51
+ if (verbose && output.trim()) {
52
+ console.log(output);
53
+ }
54
+ }
55
+ catch (error) {
56
+ if (error instanceof Error) {
57
+ console.error(error.message);
58
+ }
59
+ throw new Error(`Failed to install package: ${packageName}`);
60
+ }
61
+ }
62
+ /**
63
+ * Install package dependencies from schema.
64
+ * Merges dependencies into package.json and runs npm install with a spinner.
65
+ */
66
+ export async function installPackageDependencies(schema, context) {
67
+ const logger = context.logger;
68
+ const packageJsonPath = join(context.webappDir, "package.json");
69
+ if (!existsSync(packageJsonPath)) {
70
+ throw new Error(`package.json not found in: ${context.webappDir}`);
71
+ }
72
+ // Read current package.json
73
+ const packageJsonContent = readFileSync(packageJsonPath, "utf-8");
74
+ const packageJson = JSON.parse(packageJsonContent);
75
+ let hasChanges = false;
76
+ // Merge regular dependencies
77
+ if (schema.packageDependencies) {
78
+ packageJson.dependencies = packageJson.dependencies || {};
79
+ for (const [pkg, version] of Object.entries(schema.packageDependencies)) {
80
+ const currentVersion = packageJson.dependencies[pkg];
81
+ if (!currentVersion) {
82
+ logger.plain(`${context.dryRun ? "[DRY RUN] Would add" : "Adding"} dependency: ${pkg}@${version}`);
83
+ if (!context.dryRun) {
84
+ packageJson.dependencies[pkg] = version;
85
+ hasChanges = true;
86
+ }
87
+ }
88
+ else if (currentVersion === "*") {
89
+ logger.plain(`${context.dryRun ? "[DRY RUN] Would update" : "Updating"} dependency: ${pkg} from * to ${version}`);
90
+ if (!context.dryRun) {
91
+ packageJson.dependencies[pkg] = version;
92
+ hasChanges = true;
93
+ }
94
+ }
95
+ else {
96
+ logger.debug(`Dependency already exists: ${pkg}@${currentVersion}`);
97
+ }
98
+ }
99
+ }
100
+ // Merge dev dependencies
101
+ if (schema.packageDevDependencies) {
102
+ packageJson.devDependencies = packageJson.devDependencies || {};
103
+ for (const [pkg, version] of Object.entries(schema.packageDevDependencies)) {
104
+ const currentVersion = packageJson.devDependencies[pkg];
105
+ if (!currentVersion) {
106
+ logger.plain(`${context.dryRun ? "[DRY RUN] Would add" : "Adding"} dev dependency: ${pkg}@${version}`);
107
+ if (!context.dryRun) {
108
+ packageJson.devDependencies[pkg] = version;
109
+ hasChanges = true;
110
+ }
111
+ }
112
+ else if (currentVersion === "*") {
113
+ logger.plain(`${context.dryRun ? "[DRY RUN] Would update" : "Updating"} dev dependency: ${pkg} from * to ${version}`);
114
+ if (!context.dryRun) {
115
+ packageJson.devDependencies[pkg] = version;
116
+ hasChanges = true;
117
+ }
118
+ }
119
+ else {
120
+ logger.debug(`Dev dependency already exists: ${pkg}@${currentVersion}`);
121
+ }
122
+ }
123
+ }
124
+ if (!hasChanges) {
125
+ logger.debug("No new dependencies to install");
126
+ return;
127
+ }
128
+ if (context.dryRun) {
129
+ return;
130
+ }
131
+ // Write updated package.json
132
+ writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2) + "\n", "utf-8");
133
+ // Run npm install with spinner
134
+ const spinner = ora({ text: "Running npm install...", indent: 2 }).start();
135
+ try {
136
+ const output = await runNpm(["install"], context.webappDir);
137
+ spinner.succeed("npm install complete");
138
+ if (context.verbose && output.trim()) {
139
+ console.log(output);
140
+ }
141
+ }
142
+ catch (error) {
143
+ spinner.fail("npm install failed");
144
+ if (error instanceof Error) {
145
+ console.error(error.message);
146
+ }
147
+ throw error;
148
+ }
149
+ }
150
+ /**
151
+ * Check if a package is already installed and listed in package.json
152
+ * This ensures the package won't be removed by subsequent npm install commands
153
+ */
154
+ export function isPackageInstalled(packageName, webappDir) {
155
+ const packageJsonPath = join(webappDir, "package.json");
156
+ if (!existsSync(packageJsonPath)) {
157
+ return false;
158
+ }
159
+ try {
160
+ const packageJsonContent = readFileSync(packageJsonPath, "utf-8");
161
+ const packageJson = JSON.parse(packageJsonContent);
162
+ // Check both dependencies and devDependencies
163
+ const inDependencies = packageJson.dependencies?.[packageName] !== undefined;
164
+ const inDevDependencies = packageJson.devDependencies?.[packageName] !== undefined;
165
+ return inDependencies || inDevDependencies;
166
+ }
167
+ catch (error) {
168
+ fallbackLogger.error("Failed to read package.json", error);
169
+ return false;
170
+ }
171
+ }
172
+ //# sourceMappingURL=package-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../src/package-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Copyright (c) 2026, Salesforce, Inc.,
3
+ * All rights reserved.
4
+ * For full license text, see the LICENSE.txt file
5
+ */
6
+ import type { InstallationContext } from "./types.js";
7
+ /**
8
+ * Resolve a schema path to an actual file system path
9
+ *
10
+ * Supports three placeholder formats:
11
+ * 1. <sfdxRoot>/path → resolves to context.sfdxRoot/path
12
+ * 2. <webappDir>/path → resolves to context.webappDir/path
13
+ * 3. <webapp> → replaced with context.webappName (legacy)
14
+ *
15
+ * For backward compatibility, also handles paths without placeholders:
16
+ * - force-app/main/default/... → treated as SFDX metadata
17
+ * - Other paths → treated as relative to webappDir
18
+ */
19
+ export declare function resolvePath(schemaPath: string, context: InstallationContext): string;
20
+ /**
21
+ * Resolve source path from package, trying multiple possible locations
22
+ * Returns the first path that exists, or throws an error with all attempted paths
23
+ */
24
+ export declare function resolveSourcePath(packagePath: string, schemaFrom: string): string;
25
+ //# sourceMappingURL=placeholder-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"placeholder-resolver.d.ts","sourceRoot":"","sources":["../src/placeholder-resolver.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGtD;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAsCpF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAwBjF"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Copyright (c) 2026, Salesforce, Inc.,
3
+ * All rights reserved.
4
+ * For full license text, see the LICENSE.txt file
5
+ */
6
+ import { existsSync } from "fs";
7
+ import { join } from "path";
8
+ import { hasWebappPlaceholder, isSfdxMetadataPath } from "./utils.js";
9
+ /**
10
+ * Resolve a schema path to an actual file system path
11
+ *
12
+ * Supports three placeholder formats:
13
+ * 1. <sfdxRoot>/path → resolves to context.sfdxRoot/path
14
+ * 2. <webappDir>/path → resolves to context.webappDir/path
15
+ * 3. <webapp> → replaced with context.webappName (legacy)
16
+ *
17
+ * For backward compatibility, also handles paths without placeholders:
18
+ * - force-app/main/default/... → treated as SFDX metadata
19
+ * - Other paths → treated as relative to webappDir
20
+ */
21
+ export function resolvePath(schemaPath, context) {
22
+ // Handle <sfdxRoot> placeholder
23
+ if (schemaPath.startsWith("<sfdxRoot>")) {
24
+ const relativePath = schemaPath.replace(/^<sfdxRoot>\/?/, "");
25
+ return relativePath ? join(context.sfdxRoot, relativePath) : context.sfdxRoot;
26
+ }
27
+ // Handle <webappDir> placeholder
28
+ if (schemaPath.startsWith("<webappDir>")) {
29
+ const relativePath = schemaPath.replace(/^<webappDir>\/?/, "");
30
+ return relativePath ? join(context.webappDir, relativePath) : context.webappDir;
31
+ }
32
+ // === Backward compatibility for legacy path formats ===
33
+ // Handle SFDX metadata paths (legacy format: force-app/main/default/...)
34
+ if (isSfdxMetadataPath(schemaPath)) {
35
+ const relativePath = schemaPath.replace(/^force-app\/main\/default\//, "");
36
+ return join(context.sfdxRoot, relativePath);
37
+ }
38
+ // Handle webapp paths with <webapp> placeholder (legacy format)
39
+ if (hasWebappPlaceholder(schemaPath)) {
40
+ const withName = schemaPath.replace(/<webapp>/g, context.webappName);
41
+ // Strip 'force-app/main/default/webapplications/{webappName}/' prefix
42
+ const prefix = `force-app/main/default/webapplications/${context.webappName}/`;
43
+ if (withName.startsWith(prefix)) {
44
+ const relativePath = withName.substring(prefix.length);
45
+ return join(context.webappDir, relativePath);
46
+ }
47
+ // If no prefix, just join with webappDir
48
+ return join(context.webappDir, withName);
49
+ }
50
+ // Default: treat as relative to webappDir
51
+ return join(context.webappDir, schemaPath);
52
+ }
53
+ /**
54
+ * Resolve source path from package, trying multiple possible locations
55
+ * Returns the first path that exists, or throws an error with all attempted paths
56
+ */
57
+ export function resolveSourcePath(packagePath, schemaFrom) {
58
+ // Try multiple possible locations in order of likelihood
59
+ const possiblePaths = [
60
+ join(packagePath, "dist", schemaFrom), // Built packages often have dist/
61
+ join(packagePath, schemaFrom), // Some packages don't have dist/
62
+ ];
63
+ // Return the first path that exists
64
+ for (const path of possiblePaths) {
65
+ if (existsSync(path)) {
66
+ return path;
67
+ }
68
+ }
69
+ // None found - throw descriptive error
70
+ const error = new Error(`Source path not found in package. Tried:\n${possiblePaths.map((p) => ` - ${p}`).join("\n")}\n\n` +
71
+ `This usually means:\n` +
72
+ ` 1. The package hasn't been built (run npm run build in the package)\n` +
73
+ ` 2. The "from" path in features.json is incorrect\n` +
74
+ ` 3. The package structure doesn't match expectations`);
75
+ error.name = "SourcePathNotFoundError";
76
+ throw error;
77
+ }
78
+ //# sourceMappingURL=placeholder-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"placeholder-resolver.js","sourceRoot":"","sources":["../src/placeholder-resolver.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEtE;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,WAAW,CAAC,UAAkB,EAAE,OAA4B;IAC3E,gCAAgC;IAChC,IAAI,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACzC,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QAC9D,OAAO,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC/E,CAAC;IAED,iCAAiC;IACjC,IAAI,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC1C,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;QAC/D,OAAO,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IACjF,CAAC;IAED,yDAAyD;IAEzD,yEAAyE;IACzE,IAAI,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC;QACpC,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAC;QAC3E,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC7C,CAAC;IAED,gEAAgE;IAChE,IAAI,oBAAoB,CAAC,UAAU,CAAC,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QAErE,sEAAsE;QACtE,MAAM,MAAM,GAAG,0CAA0C,OAAO,CAAC,UAAU,GAAG,CAAC;QAC/E,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,MAAM,YAAY,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAC9C,CAAC;QAED,yCAAyC;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,0CAA0C;IAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAAmB,EAAE,UAAkB;IACxE,yDAAyD;IACzD,MAAM,aAAa,GAAG;QACrB,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,kCAAkC;QACzE,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,iCAAiC;KAChE,CAAC;IAEF,oCAAoC;IACpC,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QAClC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QACb,CAAC;IACF,CAAC;IAED,uCAAuC;IACvC,MAAM,KAAK,GAAG,IAAI,KAAK,CACtB,6CAA6C,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;QACjG,uBAAuB;QACvB,yEAAyE;QACzE,sDAAsD;QACtD,uDAAuD,CACxD,CAAC;IACF,KAAK,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACvC,MAAM,KAAK,CAAC;AACb,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Copyright (c) 2026, Salesforce, Inc.,
3
+ * All rights reserved.
4
+ * For full license text, see the LICENSE.txt file
5
+ */
6
+ import { Logger } from "./logger.js";
7
+ import type { FileCopySchema } from "./types.js";
8
+ /**
9
+ * Load and validate a feature schema from a package directory
10
+ * Tries multiple locations: root and dist/ directory
11
+ */
12
+ export declare function loadSchema(packagePath: string, logger?: Logger): FileCopySchema | null;
13
+ /**
14
+ * Load schema from node_modules OR from local features.json metadata
15
+ */
16
+ export declare function loadSchemaFromNodeModules(packageName: string, webappDir: string, logger?: Logger): FileCopySchema | null;
17
+ //# sourceMappingURL=schema-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-loader.d.ts","sourceRoot":"","sources":["../src/schema-loader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAiBjD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CA2BtF;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACxC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACb,cAAc,GAAG,IAAI,CA6BvB"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Copyright (c) 2026, Salesforce, Inc.,
3
+ * All rights reserved.
4
+ * For full license text, see the LICENSE.txt file
5
+ */
6
+ import { existsSync, readFileSync } from "fs";
7
+ import { join } from "path";
8
+ import { z } from "zod";
9
+ import { getFeatureMetadata, getFeatureNameFromPackage } from "./feature-metadata.js";
10
+ import { Logger } from "./logger.js";
11
+ // Zod schema for validation
12
+ const CopyOperationSchema = z.object({
13
+ from: z.string(),
14
+ to: z.string(),
15
+ description: z.string().optional(),
16
+ integrationTarget: z.string().optional(),
17
+ });
18
+ const FileCopySchemaValidator = z.object({
19
+ featureDependencies: z.array(z.string()).optional(),
20
+ packageDependencies: z.record(z.string()).optional(),
21
+ packageDevDependencies: z.record(z.string()).optional(),
22
+ copy: z.array(CopyOperationSchema).optional(),
23
+ });
24
+ /**
25
+ * Load and validate a feature schema from a package directory
26
+ * Tries multiple locations: root and dist/ directory
27
+ */
28
+ export function loadSchema(packagePath, logger) {
29
+ const log = logger ?? new Logger();
30
+ const possibleLocations = [
31
+ join(packagePath, "features.json"),
32
+ join(packagePath, "dist", "features.json"),
33
+ ];
34
+ for (const schemaPath of possibleLocations) {
35
+ if (existsSync(schemaPath)) {
36
+ try {
37
+ const content = readFileSync(schemaPath, "utf-8");
38
+ const parsed = JSON.parse(content);
39
+ // Validate with Zod
40
+ const validated = FileCopySchemaValidator.parse(parsed);
41
+ log.debug(`Loaded schema from: ${schemaPath}`);
42
+ return validated;
43
+ }
44
+ catch (error) {
45
+ log.error(`Failed to parse schema at ${schemaPath}:`, error);
46
+ throw new Error(`Invalid schema format in ${schemaPath}`);
47
+ }
48
+ }
49
+ }
50
+ log.debug(`No features.json found in: ${packagePath}`);
51
+ return null;
52
+ }
53
+ /**
54
+ * Load schema from node_modules OR from local features.json metadata
55
+ */
56
+ export function loadSchemaFromNodeModules(packageName, webappDir, logger) {
57
+ const log = logger ?? new Logger();
58
+ // First, try to get schema from local features.json metadata
59
+ const featureName = getFeatureNameFromPackage(packageName);
60
+ if (featureName) {
61
+ const metadata = getFeatureMetadata(featureName);
62
+ if (metadata) {
63
+ // Check if metadata has schema information
64
+ if (metadata.copy ||
65
+ metadata.packageDependencies ||
66
+ metadata.packageDevDependencies ||
67
+ metadata.featureDependencies) {
68
+ log.debug(`Using schema from local features.json for: ${packageName}`);
69
+ return {
70
+ featureDependencies: metadata.featureDependencies,
71
+ packageDependencies: metadata.packageDependencies,
72
+ packageDevDependencies: metadata.packageDevDependencies,
73
+ copy: metadata.copy,
74
+ };
75
+ }
76
+ }
77
+ }
78
+ // Fallback: try to load from node_modules (for packages with their own features.json)
79
+ const packagePath = join(webappDir, "node_modules", packageName);
80
+ return loadSchema(packagePath, log);
81
+ }
82
+ //# sourceMappingURL=schema-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-loader.js","sourceRoot":"","sources":["../src/schema-loader.ts"],"names":[],"mappings":"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"}