@ng-annotate/angular 0.5.0 → 0.5.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ng-annotate/angular",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "schematics": "./schematics/collection.json",
5
5
  "builders": "./builders.json",
6
6
  "description": "Angular library for ng-annotate-mcp — browser overlay for annotating components and routing instructions to an AI agent",
@@ -239,8 +239,18 @@ function addDevDependency() {
239
239
  if (!tree.exists(pkgPath))
240
240
  return;
241
241
  const pkg = JSON.parse(tree.read(pkgPath).toString('utf-8'));
242
+ pkg['dependencies'] ?? (pkg['dependencies'] = {});
242
243
  pkg['devDependencies'] ?? (pkg['devDependencies'] = {});
243
244
  let changed = false;
245
+ // ng add installs @ng-annotate/angular into dependencies by default.
246
+ // Move it to devDependencies — it is a dev-only tool.
247
+ const ngAnnotateVersion = pkg['dependencies']['@ng-annotate/angular'];
248
+ if (ngAnnotateVersion && !pkg['devDependencies']['@ng-annotate/angular']) {
249
+ pkg['devDependencies']['@ng-annotate/angular'] = ngAnnotateVersion;
250
+ delete pkg['dependencies']['@ng-annotate/angular'];
251
+ changed = true;
252
+ context.logger.info('✅ Moved @ng-annotate/angular to devDependencies');
253
+ }
244
254
  if (!pkg['devDependencies']['@ng-annotate/mcp-server']) {
245
255
  pkg['devDependencies']['@ng-annotate/mcp-server'] = 'latest';
246
256
  changed = true;
@@ -97,6 +97,40 @@ function makeTree(files: Record<string, string>): Tree {
97
97
  return tree;
98
98
  }
99
99
 
100
+ // ─── addDevDependency ─────────────────────────────────────────────────────────
101
+
102
+ describe('ng-add schematic — addDevDependency', () => {
103
+ it('moves @ng-annotate/angular from dependencies to devDependencies', async () => {
104
+ const pkg = JSON.stringify({
105
+ dependencies: { '@angular/core': '^21.0.0', '@ng-annotate/angular': '^0.5.0' },
106
+ devDependencies: {},
107
+ });
108
+ const tree = makeTree({ 'package.json': pkg });
109
+ const result = await runSchematic(tree);
110
+ const parsed = JSON.parse(result.readText('package.json')) as Record<string, Record<string, string>>;
111
+ expect(parsed['devDependencies']['@ng-annotate/angular']).toBe('^0.5.0');
112
+ expect(parsed['dependencies']['@ng-annotate/angular']).toBeUndefined();
113
+ });
114
+
115
+ it('adds @ng-annotate/mcp-server to devDependencies', async () => {
116
+ const tree = makeTree({ 'package.json': BASE_PKG });
117
+ const result = await runSchematic(tree);
118
+ const parsed = JSON.parse(result.readText('package.json')) as Record<string, Record<string, string>>;
119
+ expect(parsed['devDependencies']['@ng-annotate/mcp-server']).toBe('latest');
120
+ });
121
+
122
+ it('skips @ng-annotate/mcp-server if already present', async () => {
123
+ const pkg = JSON.stringify({
124
+ dependencies: { '@angular/core': '^21.0.0' },
125
+ devDependencies: { '@ng-annotate/mcp-server': '^0.4.0' },
126
+ });
127
+ const tree = makeTree({ 'package.json': pkg });
128
+ const result = await runSchematic(tree);
129
+ const parsed = JSON.parse(result.readText('package.json')) as Record<string, Record<string, string>>;
130
+ expect(parsed['devDependencies']['@ng-annotate/mcp-server']).toBe('^0.4.0');
131
+ });
132
+ });
133
+
100
134
  // ─── updateAngularJsonBuilder ─────────────────────────────────────────────────
101
135
 
102
136
  describe('ng-add schematic — updateAngularJsonBuilder', () => {
@@ -268,10 +268,21 @@ function addDevDependency(): Rule {
268
268
  string,
269
269
  Record<string, string>
270
270
  >;
271
+ pkg['dependencies'] ??= {};
271
272
  pkg['devDependencies'] ??= {};
272
273
 
273
274
  let changed = false;
274
275
 
276
+ // ng add installs @ng-annotate/angular into dependencies by default.
277
+ // Move it to devDependencies — it is a dev-only tool.
278
+ const ngAnnotateVersion = pkg['dependencies']['@ng-annotate/angular'];
279
+ if (ngAnnotateVersion && !pkg['devDependencies']['@ng-annotate/angular']) {
280
+ pkg['devDependencies']['@ng-annotate/angular'] = ngAnnotateVersion;
281
+ delete pkg['dependencies']['@ng-annotate/angular'];
282
+ changed = true;
283
+ context.logger.info('✅ Moved @ng-annotate/angular to devDependencies');
284
+ }
285
+
275
286
  if (!pkg['devDependencies']['@ng-annotate/mcp-server']) {
276
287
  pkg['devDependencies']['@ng-annotate/mcp-server'] = 'latest';
277
288
  changed = true;