@simplysf/simply-utam 0.1.1 → 0.1.2

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.
package/README.md CHANGED
@@ -16,7 +16,7 @@ Requires Node.js 22 or later.
16
16
 
17
17
  ## Commands
18
18
 
19
- - `simply-utam init`: Scaffolds starter UTAM configs (`generator.config.json`, `utam.config.json`, `wdio.conf.mjs`, `.utam/namespace-map.json`) and non-destructively injects standard Wireit tasks into `package.json`.
19
+ - `simply-utam init`: Scaffolds starter UTAM configs (`generator.config.json`, `utam.config.json`, `wdio.conf.mjs`, `.utam/namespace-map.json`), non-destructively injects standard Wireit tasks into `package.json`, and adds any missing UTAM rules to `.forceignore` under a `# Ignore UTAM` comment so LWC bundles that contain UTAM files deploy successfully. Existing lines are never changed; new rules go inside the `# -- START CUSTOMIZATION` / `# -- END CUSTOMIZATION` region when one exists (`--forceignore-region-start` / `--forceignore-region-end` to change the markers, `--no-forceignore` to skip).
20
20
  - `simply-utam rules`: Scans LWC component definitions and generates or updates UTAM `.rules.json` files for root components.
21
21
  - `simply-utam overrides`: Deeply merges custom element assertions, wait conditions, and visibility rules from `*.utam-overrides.json` into generated `*.utam.json` files while preserving file indentation.
22
22
  - `simply-utam rewrite`: Rewrites namespace prefixes across compiled `*.utam.json` files according to `.utam/namespace-map.json`.
@@ -14,7 +14,11 @@ export default class Init extends Command {
14
14
  'app-name': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
15
15
  force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
16
16
  'dry-run': import("@oclif/core/interfaces").BooleanFlag<boolean>;
17
+ forceignore: import("@oclif/core/interfaces").BooleanFlag<boolean>;
18
+ 'forceignore-region-start': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
19
+ 'forceignore-region-end': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
17
20
  verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
18
21
  };
19
22
  run(): Promise<ScaffoldResult>;
23
+ private logForceignore;
20
24
  }
@@ -15,17 +15,18 @@
15
15
  */
16
16
  import * as path from 'node:path';
17
17
  import { Command, Flags } from '@oclif/core';
18
- import { scaffoldProject } from '@simplysf/simply-utam-core';
18
+ import { DEFAULT_FORCEIGNORE_REGION, scaffoldProject, } from '@simplysf/simply-utam-core';
19
19
  /**
20
20
  * CLI command to scaffold SimplyUTAM configurations, Wireit tasks, and namespace maps.
21
21
  */
22
22
  export default class Init extends Command {
23
23
  static summary = 'Scaffold UTAM configurations, Wireit tasks, and namespace maps in a Salesforce project.';
24
- static description = 'Inspects the target project, generates generator.config.json, utam.config.json, wdio.conf.mjs, and .utam/namespace-map.json, and non-destructively injects standard Wireit tasks into package.json.';
24
+ static description = 'Inspects the target project, generates generator.config.json, utam.config.json, wdio.conf.mjs, and .utam/namespace-map.json, non-destructively injects standard Wireit tasks into package.json, and adds any missing UTAM rules to .forceignore under a "# Ignore UTAM" comment without changing existing lines.';
25
25
  static examples = [
26
26
  '<%= config.bin %> <%= command.id %>',
27
27
  '<%= config.bin %> <%= command.id %> --source-dir force-app --app-name my-app',
28
28
  '<%= config.bin %> <%= command.id %> --dry-run',
29
+ '<%= config.bin %> <%= command.id %> --forceignore-region-start "# BEGIN LOCAL" --forceignore-region-end "# END LOCAL"',
29
30
  ];
30
31
  static enableJsonFlag = true;
31
32
  static flags = {
@@ -51,6 +52,19 @@ export default class Init extends Command {
51
52
  summary: 'Preview modifications without writing to disk.',
52
53
  default: false,
53
54
  }),
55
+ forceignore: Flags.boolean({
56
+ summary: 'Add missing UTAM rules to .forceignore.',
57
+ default: true,
58
+ allowNo: true,
59
+ }),
60
+ 'forceignore-region-start': Flags.string({
61
+ summary: 'Exact line that starts the .forceignore customization region.',
62
+ default: DEFAULT_FORCEIGNORE_REGION.start,
63
+ }),
64
+ 'forceignore-region-end': Flags.string({
65
+ summary: 'Exact line that ends the .forceignore customization region.',
66
+ default: DEFAULT_FORCEIGNORE_REGION.end,
67
+ }),
54
68
  verbose: Flags.boolean({
55
69
  char: 'v',
56
70
  summary: 'Enable detailed output.',
@@ -66,6 +80,9 @@ export default class Init extends Command {
66
80
  appName: flags['app-name'],
67
81
  force: flags.force,
68
82
  dryRun: flags['dry-run'],
83
+ forceignore: flags.forceignore,
84
+ forceignoreRegionStart: flags['forceignore-region-start'],
85
+ forceignoreRegionEnd: flags['forceignore-region-end'],
69
86
  });
70
87
  if (flags['dry-run']) {
71
88
  this.log(`[dry-run] Project scaffolding preview for: ${resolvedTarget}`);
@@ -91,11 +108,37 @@ export default class Init extends Command {
91
108
  this.log(`Updated files: ${result.modifiedFiles.join(', ')}`);
92
109
  }
93
110
  }
111
+ if (result.forceignore) {
112
+ this.logForceignore(result.forceignore, flags['dry-run']);
113
+ }
94
114
  if (result.missingDependencies.length > 0) {
95
115
  this.log(`\nRecommended devDependencies missing: ${result.missingDependencies.join(' ')}`);
96
116
  this.log(`Run: npm install -D ${result.missingDependencies.join(' ')}`);
97
117
  }
98
118
  return result;
99
119
  }
120
+ logForceignore(forceignore, dryRun) {
121
+ const where = {
122
+ block: 'under the existing "# Ignore UTAM" comment',
123
+ region: 'inside the customization region',
124
+ end: 'at the end of the file',
125
+ };
126
+ const created = forceignore.action === 'created';
127
+ if (forceignore.addedPatterns.length > 0) {
128
+ const verb = dryRun ? (created ? 'Would create' : 'Would update') : created ? 'Created' : 'Updated';
129
+ const placement = forceignore.placement && !created ? ` (${where[forceignore.placement]})` : '';
130
+ this.log(`${verb} ${forceignore.path}: added ${forceignore.addedPatterns.join(', ')}${placement}`);
131
+ }
132
+ else if (forceignore.action === 'unchanged') {
133
+ this.log(`${forceignore.path} already covers UTAM artifacts.`);
134
+ }
135
+ else if (forceignore.action === 'skipped') {
136
+ this.log(`Skipped ${forceignore.path}: no ${forceignore.path} or sfdx-project.json found. ` +
137
+ 'Point --project-dir at the folder that contains sfdx-project.json, or add the UTAM rules yourself.');
138
+ }
139
+ for (const warning of forceignore.warnings) {
140
+ this.warn(warning);
141
+ }
142
+ }
100
143
  }
101
144
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -90,11 +90,12 @@
90
90
  "init": {
91
91
  "aliases": [],
92
92
  "args": {},
93
- "description": "Inspects the target project, generates generator.config.json, utam.config.json, wdio.conf.mjs, and .utam/namespace-map.json, and non-destructively injects standard Wireit tasks into package.json.",
93
+ "description": "Inspects the target project, generates generator.config.json, utam.config.json, wdio.conf.mjs, and .utam/namespace-map.json, non-destructively injects standard Wireit tasks into package.json, and adds any missing UTAM rules to .forceignore under a \"# Ignore UTAM\" comment without changing existing lines.",
94
94
  "examples": [
95
95
  "<%= config.bin %> <%= command.id %>",
96
96
  "<%= config.bin %> <%= command.id %> --source-dir force-app --app-name my-app",
97
- "<%= config.bin %> <%= command.id %> --dry-run"
97
+ "<%= config.bin %> <%= command.id %> --dry-run",
98
+ "<%= config.bin %> <%= command.id %> --forceignore-region-start \"# BEGIN LOCAL\" --forceignore-region-end \"# END LOCAL\""
98
99
  ],
99
100
  "flags": {
100
101
  "json": {
@@ -142,6 +143,28 @@
142
143
  "allowNo": false,
143
144
  "type": "boolean"
144
145
  },
146
+ "forceignore": {
147
+ "name": "forceignore",
148
+ "summary": "Add missing UTAM rules to .forceignore.",
149
+ "allowNo": true,
150
+ "type": "boolean"
151
+ },
152
+ "forceignore-region-start": {
153
+ "name": "forceignore-region-start",
154
+ "summary": "Exact line that starts the .forceignore customization region.",
155
+ "default": "# -- START CUSTOMIZATION",
156
+ "hasDynamicHelp": false,
157
+ "multiple": false,
158
+ "type": "option"
159
+ },
160
+ "forceignore-region-end": {
161
+ "name": "forceignore-region-end",
162
+ "summary": "Exact line that ends the .forceignore customization region.",
163
+ "default": "# -- END CUSTOMIZATION",
164
+ "hasDynamicHelp": false,
165
+ "multiple": false,
166
+ "type": "option"
167
+ },
145
168
  "verbose": {
146
169
  "char": "v",
147
170
  "name": "verbose",
@@ -464,5 +487,5 @@
464
487
  ]
465
488
  }
466
489
  },
467
- "version": "0.1.1"
490
+ "version": "0.1.2"
468
491
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@simplysf/simply-utam",
3
3
  "description": "Salesforce UTAM UI testing and build automation CLI",
4
- "version": "0.1.1",
4
+ "version": "0.1.2",
5
5
  "author": "@ClayChipps",
6
6
  "homepage": "https://github.com/SimplySF/simply-utam",
7
7
  "bugs": "https://github.com/SimplySF/simply-utam/issues",
@@ -42,7 +42,7 @@
42
42
  },
43
43
  "dependencies": {
44
44
  "@oclif/core": "^5.1.2",
45
- "@simplysf/simply-utam-core": "0.1.0"
45
+ "@simplysf/simply-utam-core": "0.1.1"
46
46
  },
47
47
  "devDependencies": {
48
48
  "@vitest/coverage-v8": "^4.1.10",
@@ -146,5 +146,5 @@
146
146
  "output": []
147
147
  }
148
148
  },
149
- "gitHead": "1b16ea7ca0c75a1fa28a05eedb0408db56685269"
149
+ "gitHead": "dfccc720c460ceff0d7ebbebdfed98ebcb281fbf"
150
150
  }