@craft-ng/dev-tools 0.1.6 → 0.1.8

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": "@craft-ng/dev-tools",
3
- "version": "0.1.6",
3
+ "version": "0.1.8",
4
4
  "description": "Development tools for ng-craft: ESLint configs, ESLint rules, and codemods",
5
5
  "type": "module",
6
6
  "main": "./src/index.js",
@@ -4,7 +4,7 @@ export type TransformResult = {
4
4
  changed: boolean;
5
5
  skipped: boolean;
6
6
  warnings: string[];
7
- angularKind?: string;
7
+ angularKind?: AngularKind;
8
8
  className?: string;
9
9
  dependencies: string[];
10
10
  dependencyGroups: DependencyGroups;
@@ -83,7 +83,7 @@ export declare function extractDecoratorMetadataDeps(classDeclaration: ClassDecl
83
83
  export declare function extractConstructorDeps(classDeclaration: ClassDeclaration): DependencyExtractionResult;
84
84
  export declare function extractInjectCallDeps(classDeclaration: ClassDeclaration): InjectCallDependencyExtractionResult;
85
85
  export declare function mergeDeps(...dependencyGroups: readonly string[][]): string[];
86
- export declare function writeGeneratedDepsTypeAlias(sourceFile: SourceFile, className: string, generatedDependencyGroups: GeneratedDependencyGroups): void;
86
+ export declare function writeGeneratedDepsTypeAlias(sourceFile: SourceFile, angularKind: AngularKind, className: string, generatedDependencyGroups: GeneratedDependencyGroups): void;
87
87
  export declare function migrateLegacyBrandExport(sourceFile: SourceFile, classDeclaration: ClassDeclaration, className: string): void;
88
88
  export declare function ensureHelperImports(sourceFile: SourceFile, helperImportPath: string): void;
89
89
  export declare function readExistingDependencyGroups(sourceFile: SourceFile, className?: string): ExistingDependencyGroupsResult;
@@ -72,7 +72,7 @@ export function transformSourceFile(sourceFile, options = {}) {
72
72
  migrateLegacyBrandExport(sourceFile, classDeclaration, className);
73
73
  ensureHelperImports(sourceFile, normalizedOptions.helperImportPath);
74
74
  ensureGeneratedDependencyTypeImports(sourceFile, result.generatedDependencyGroups);
75
- writeGeneratedDepsTypeAlias(sourceFile, className, result.generatedDependencyGroups);
75
+ writeGeneratedDepsTypeAlias(sourceFile, angularKind, className, result.generatedDependencyGroups);
76
76
  sourceFile.organizeImports();
77
77
  result.changed = sourceFile.getFullText() !== beforeText;
78
78
  return result;
@@ -303,12 +303,15 @@ function createGeneratedDependencyGroups(sourceFile, importDependencies, injecte
303
303
  const deps = mergeGeneratedDependencyEntries(importDependencies.map((dependency) => createGeneratedDependencyEntry(sourceFile, dependency, 'import')), injectedDependencies.map((dependency) => dependency.entry));
304
304
  const provided = mergeGeneratedDependencyEntries(providedEntries);
305
305
  const providedKeys = new Set(provided.map((entry) => entry.key));
306
- const injectedEntriesByKey = new Map(injectedDependencies.map((dependency) => [dependency.entry.key, dependency.entry]));
306
+ const injectedEntriesByKey = new Map(injectedDependencies.map((dependency) => [
307
+ dependency.entry.key,
308
+ dependency.entry,
309
+ ]));
307
310
  const missingProvider = mergeGeneratedDependencyEntries(injectedDependencies
308
311
  .filter((dependency) => {
309
312
  const dependencyKey = dependency.entry.key;
310
313
  return (!providedKeys.has(dependencyKey) &&
311
- !isDependencyProvidedElsewhere(sourceFile, dependency.dependencyText));
314
+ shouldGenerateLocalMissingProvider(sourceFile, dependency.dependencyText));
312
315
  })
313
316
  .map((dependency) => {
314
317
  var _a;
@@ -367,10 +370,10 @@ function createGeneratedInjectHelperDependencyEntry(sourceFile, callExpression,
367
370
  function createTrackedInjectHelperTypeText(dependencyText, exposureTracking) {
368
371
  const baseType = `GetInjectedServiceDependencies<typeof ${dependencyText}>`;
369
372
  if (!exposureTracking) {
370
- return [baseType + ' & {', ' usesWholeService: true;', '}'].join('\n');
373
+ return baseType;
371
374
  }
372
375
  return [
373
- `${baseType} & {`,
376
+ `DerivedService<${baseType}, {`,
374
377
  ` derivedPropertiesUsed: ${formatHelperExposurePropertiesType(dependencyText, exposureTracking.usedProperties.map((sourceKey) => ({
375
378
  propertyKey: sourceKey,
376
379
  sourceKey,
@@ -379,7 +382,7 @@ function createTrackedInjectHelperTypeText(dependencyText, exposureTracking) {
379
382
  propertyKey: exposedKey,
380
383
  sourceKey,
381
384
  })))};`,
382
- '}',
385
+ '}>',
383
386
  ].join('\n');
384
387
  }
385
388
  function formatHelperExposurePropertiesType(dependencyText, properties) {
@@ -418,7 +421,8 @@ function resolveTrackedInjectHelperFromDeclaration(declaration) {
418
421
  const objectBindingPattern = declaration.getFirstAncestorByKind(SyntaxKind.ObjectBindingPattern);
419
422
  const variableDeclaration = objectBindingPattern === null || objectBindingPattern === void 0 ? void 0 : objectBindingPattern.getFirstAncestorByKind(SyntaxKind.VariableDeclaration);
420
423
  const initializer = variableDeclaration === null || variableDeclaration === void 0 ? void 0 : variableDeclaration.getInitializer();
421
- if (!Node.isCallExpression(initializer) || !isServiceFactoryCall(initializer)) {
424
+ if (!Node.isCallExpression(initializer) ||
425
+ !isServiceFactoryCall(initializer)) {
422
426
  return undefined;
423
427
  }
424
428
  const [optionsArgument] = initializer.getArguments();
@@ -439,7 +443,8 @@ function resolveTrackedInjectHelperFromDeclaration(declaration) {
439
443
  function isServiceFactoryCall(callExpression) {
440
444
  const expression = callExpression.getExpression();
441
445
  if (Node.isIdentifier(expression)) {
442
- return expression.getText() === 'craftService' || expression.getText() === 'toCraftService';
446
+ return (expression.getText() === 'craftService' ||
447
+ expression.getText() === 'toCraftService');
443
448
  }
444
449
  if (Node.isPropertyAccessExpression(expression)) {
445
450
  const methodName = expression.getName();
@@ -505,7 +510,9 @@ function getExposureReturnObjectLiteral(exposeArgument) {
505
510
  if (!Node.isBlock(body)) {
506
511
  return undefined;
507
512
  }
508
- const returnStatement = [...body.getDescendantsOfKind(SyntaxKind.ReturnStatement)]
513
+ const returnStatement = [
514
+ ...body.getDescendantsOfKind(SyntaxKind.ReturnStatement),
515
+ ]
509
516
  .reverse()
510
517
  .find((statement) => Node.isObjectLiteralExpression(statement.getExpression()));
511
518
  const expression = returnStatement === null || returnStatement === void 0 ? void 0 : returnStatement.getExpression();
@@ -647,12 +654,19 @@ function ensureGeneratedDependencyTypeImports(sourceFile, generatedDependencyGro
647
654
  });
648
655
  }
649
656
  }
650
- function formatGeneratedDependencyType(generatedDependencyGroups) {
657
+ function formatGeneratedDependencyType(angularKind, className, generatedDependencyGroups) {
651
658
  return [
652
659
  '{',
653
660
  ` deps: ${formatGeneratedDependencyObject(generatedDependencyGroups.deps)};`,
654
661
  ` provided: ${formatGeneratedDependencyObject(generatedDependencyGroups.provided)};`,
655
- ` missingProvider: ${formatGeneratedDependencyObject(generatedDependencyGroups.missingProvider)};`,
662
+ ...(angularKind === 'component'
663
+ ? [` publicProperties: GetPublicComponentProperties<${className}>;`]
664
+ : []),
665
+ ...(generatedDependencyGroups.missingProvider.length > 0
666
+ ? [
667
+ ` missingProvider: ${formatGeneratedDependencyObject(generatedDependencyGroups.missingProvider)};`,
668
+ ]
669
+ : []),
656
670
  '}',
657
671
  ].join('\n');
658
672
  }
@@ -678,9 +692,9 @@ function formatGeneratedDependencyEntry(entry) {
678
692
  function formatObjectKey(key) {
679
693
  return /^[$A-Z_][0-9A-Z_$]*$/i.test(key) ? key : `'${key}'`;
680
694
  }
681
- export function writeGeneratedDepsTypeAlias(sourceFile, className, generatedDependencyGroups) {
695
+ export function writeGeneratedDepsTypeAlias(sourceFile, angularKind, className, generatedDependencyGroups) {
682
696
  const generatedTypeName = getGeneratedDepsTypeName(className);
683
- const generatedType = `GetDeps<${formatGeneratedDependencyType(generatedDependencyGroups)}>`;
697
+ const generatedType = `GetDeps<${formatGeneratedDependencyType(angularKind, className, generatedDependencyGroups)}>`;
684
698
  const existingTypeAlias = sourceFile.getTypeAlias(generatedTypeName);
685
699
  if (existingTypeAlias) {
686
700
  existingTypeAlias.setIsExported(true);
@@ -766,8 +780,10 @@ function getInjectionHelperDependency(expression) {
766
780
  }
767
781
  export function ensureHelperImports(sourceFile, helperImportPath) {
768
782
  const missingImports = [
783
+ 'DerivedService',
769
784
  'GetDeps',
770
785
  'GetInjectedServiceDependencies',
786
+ 'GetPublicComponentProperties',
771
787
  'GetServiceOutput',
772
788
  ].filter((importName) => !hasLocalNamedImport(sourceFile, helperImportPath, importName));
773
789
  if (missingImports.length === 0) {
@@ -1352,12 +1368,9 @@ function isProvidedInInjectableTree(sourceFile, dependencyText) {
1352
1368
  !Node.isFalseLiteral(initializer) &&
1353
1369
  !(Node.isIdentifier(initializer) && initializer.getText() === 'undefined'));
1354
1370
  }
1355
- function isDependencyProvidedElsewhere(sourceFile, dependencyText) {
1356
- const trackedHelper = resolveTrackedInjectHelperByName(sourceFile, dependencyText);
1357
- if (trackedHelper) {
1358
- return trackedHelper.scope === 'global' || trackedHelper.scope === 'function';
1359
- }
1360
- return isProvidedInInjectableTree(sourceFile, dependencyText);
1371
+ function shouldGenerateLocalMissingProvider(sourceFile, dependencyText) {
1372
+ return (!resolveTrackedInjectHelperByName(sourceFile, dependencyText) &&
1373
+ !isProvidedInInjectableTree(sourceFile, dependencyText));
1361
1374
  }
1362
1375
  function resolveTrackedInjectHelperByName(sourceFile, dependencyText) {
1363
1376
  const [rootIdentifier] = dependencyText.split('.');
@@ -1375,7 +1388,9 @@ function resolveTrackedInjectHelperByName(sourceFile, dependencyText) {
1375
1388
  function resolveDependencyIdentifierDeclarations(sourceFile, rootIdentifier) {
1376
1389
  var _a, _b, _c, _d;
1377
1390
  for (const importDeclaration of sourceFile.getImportDeclarations()) {
1378
- const namedImport = importDeclaration.getNamedImports().find((specifier) => {
1391
+ const namedImport = importDeclaration
1392
+ .getNamedImports()
1393
+ .find((specifier) => {
1379
1394
  var _a, _b;
1380
1395
  const localName = (_b = (_a = specifier.getAliasNode()) === null || _a === void 0 ? void 0 : _a.getText()) !== null && _b !== void 0 ? _b : specifier.getNameNode().getText();
1381
1396
  return localName === rootIdentifier;
@@ -1554,8 +1569,10 @@ function getExportRewriteSafety(sourceFile, classDeclaration, className) {
1554
1569
  }
1555
1570
  function getHelperImportSafety(sourceFile, helperImportPath) {
1556
1571
  const warnings = [
1572
+ 'DerivedService',
1557
1573
  'GetDeps',
1558
1574
  'GetInjectedServiceDependencies',
1575
+ 'GetPublicComponentProperties',
1559
1576
  'GetServiceOutput',
1560
1577
  ]
1561
1578
  .filter((helperName) => hasConflictingTopLevelBinding(sourceFile, helperImportPath, helperName))
@@ -1 +1 @@
1
- {"version":3,"file":"angular-brand-codemod.js","sourceRoot":"","sources":["../../../../../libs/dev-tools/src/scripts/angular-brand-codemod.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"angular-brand-codemod.js","sourceRoot":"","sources":["../../../../../libs/dev-tools/src/scripts/angular-brand-codemod.ts"],"names":[],"mappings":"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"}
@@ -10,9 +10,9 @@ const tempDirectories: string[] = [];
10
10
  describe('angular-brand-codemod', () => {
11
11
  afterEach(async () => {
12
12
  await Promise.all(
13
- tempDirectories.splice(0).map((directory) =>
14
- rm(directory, { force: true, recursive: true }),
15
- ),
13
+ tempDirectories
14
+ .splice(0)
15
+ .map((directory) => rm(directory, { force: true, recursive: true })),
16
16
  );
17
17
  });
18
18
 
@@ -75,20 +75,19 @@ describe('angular-brand-codemod', () => {
75
75
 
76
76
  expect(result.changed).toBe(true);
77
77
  expect(output).toMatch(
78
- /import \{ type GetDeps \} from ['"]@craft-ng\/core['"];/,
78
+ /import \{[^}]*type GetDeps[^}]*type GetPublicComponentProperties[^}]*\} from ['"]@craft-ng\/core['"];/,
79
79
  );
80
80
  expect(output).toMatch(
81
81
  /import \{[^}]*ChildComponent[^}]*GenDeps_ChildComponent[^}]*\} from ['"]\.\/child['"];/,
82
82
  );
83
83
  expect(output).toContain('export type GenDeps_ParentComponent = GetDeps<{');
84
84
  expect(output).toContain(
85
- 'GenDeps_ChildComponent: GenDeps_ChildComponent;',
85
+ 'publicProperties: GetPublicComponentProperties<ParentComponent>;',
86
86
  );
87
+ expect(output).toContain('GenDeps_ChildComponent: GenDeps_ChildComponent;');
87
88
  expect(output).toContain('ApiService: ApiService;');
88
89
  expect(output).toContain('HttpClient: HttpClient;');
89
- expect(output).toMatch(
90
- /provided: \{\s+UserStore: UserStore;\s+\};/m,
91
- );
90
+ expect(output).toMatch(/provided: \{\s+UserStore: UserStore;\s+\};/m);
92
91
  expect(output).toMatch(
93
92
  /missingProvider: \{\s+HttpClient: HttpClient;\s+\};/m,
94
93
  );
@@ -127,12 +126,15 @@ describe('angular-brand-codemod', () => {
127
126
  const output = sourceFile.getFullText();
128
127
 
129
128
  expect(output).toMatch(
130
- /import \{ type GetDeps \} from ['"]@craft-ng\/core['"];/,
129
+ /import \{[^}]*type GetDeps[^}]*type GetPublicComponentProperties[^}]*\} from ['"]@craft-ng\/core['"];/,
131
130
  );
132
131
  expect(output).not.toContain('brandAngularSymbol');
133
132
  expect(output).not.toContain('deps({');
134
133
  expect(output).toContain('export default class DemoComponent {}');
135
134
  expect(output).toContain('export type GenDeps_DemoComponent = GetDeps<{');
135
+ expect(output).toContain(
136
+ 'publicProperties: GetPublicComponentProperties<DemoComponent>;',
137
+ );
136
138
  });
137
139
 
138
140
  it('matches injectX and provideX helpers on the same derived key', async () => {
@@ -170,13 +172,9 @@ describe('angular-brand-codemod', () => {
170
172
  transformSourceFile(sourceFile);
171
173
  const output = sourceFile.getFullText();
172
174
 
173
- expect(output).toContain(
174
- 'UserStore: ReturnType<typeof injectUserStore>;',
175
- );
176
- expect(output).toContain(
177
- 'UserStore: ReturnType<typeof provideUserStore>;',
178
- );
179
- expect(output).toContain('missingProvider: {};');
175
+ expect(output).toContain('UserStore: ReturnType<typeof injectUserStore>;');
176
+ expect(output).toContain('UserStore: ReturnType<typeof provideUserStore>;');
177
+ expect(output).not.toContain('missingProvider: {};');
180
178
  });
181
179
 
182
180
  it('tracks craft-service helpers by source service and derived exposed properties', async () => {
@@ -196,8 +194,10 @@ describe('angular-brand-codemod', () => {
196
194
  declare module '@craft-ng/core' {
197
195
  export declare function craftService(...args: any[]): any;
198
196
  export declare function toCraftService(...args: any[]): any;
197
+ export type DerivedService<T, U> = T & U;
199
198
  export type GetDeps<T> = T;
200
199
  export type GetInjectedServiceDependencies<T> = T;
200
+ export type GetPublicComponentProperties<T> = T;
201
201
  export type GetServiceOutput<T> = T;
202
202
  }
203
203
  `,
@@ -242,16 +242,18 @@ describe('angular-brand-codemod', () => {
242
242
  const output = sourceFile.getFullText();
243
243
 
244
244
  expect(output).toContain(
245
- 'ApiService: GetInjectedServiceDependencies<typeof injectApiService> & {',
245
+ 'ApiService: GetInjectedServiceDependencies<typeof injectApiService>;',
246
+ );
247
+ expect(output).toContain(
248
+ 'publicProperties: GetPublicComponentProperties<DemoComponent>;',
246
249
  );
247
- expect(output).toContain('usesWholeService: true;');
248
250
  expect(output).toContain(
249
- 'Router: GetInjectedServiceDependencies<typeof injectRouter> & {',
251
+ 'Router: DerivedService<GetInjectedServiceDependencies<typeof injectRouter>, {',
250
252
  );
251
253
  expect(output).toContain(
252
254
  `navigate: GetServiceOutput<typeof injectRouter>["navigate"];`,
253
255
  );
254
- expect(output).toContain('missingProvider: {};');
256
+ expect(output).not.toContain('missingProvider: {};');
255
257
  });
256
258
  });
257
259
 
@@ -297,7 +299,7 @@ async function writeFixtureFiles(
297
299
  }
298
300
 
299
301
  function getFixtureSourceFile(project: Project, relativePath: string) {
300
- return project.getSourceFiles().find((sourceFile) =>
301
- sourceFile.getFilePath().endsWith(relativePath),
302
- )!;
302
+ return project
303
+ .getSourceFiles()
304
+ .find((sourceFile) => sourceFile.getFilePath().endsWith(relativePath))!;
303
305
  }
@@ -25,7 +25,7 @@ export type TransformResult = {
25
25
  changed: boolean;
26
26
  skipped: boolean;
27
27
  warnings: string[];
28
- angularKind?: string;
28
+ angularKind?: AngularKind;
29
29
  className?: string;
30
30
  dependencies: string[];
31
31
  dependencyGroups: DependencyGroups;
@@ -244,6 +244,7 @@ export function transformSourceFile(
244
244
  );
245
245
  writeGeneratedDepsTypeAlias(
246
246
  sourceFile,
247
+ angularKind,
247
248
  className,
248
249
  result.generatedDependencyGroups,
249
250
  );
@@ -350,7 +351,11 @@ export function analyzeSourceFileDependencies(
350
351
  [
351
352
  ...constructorDeps.dependencies.map((dependencyText) => ({
352
353
  dependencyText,
353
- entry: createGeneratedDependencyEntry(sourceFile, dependencyText, 'inject'),
354
+ entry: createGeneratedDependencyEntry(
355
+ sourceFile,
356
+ dependencyText,
357
+ 'inject',
358
+ ),
354
359
  })),
355
360
  ...injectCallDeps.generatedDependencies,
356
361
  ],
@@ -620,7 +625,10 @@ function createGeneratedDependencyGroups(
620
625
  const provided = mergeGeneratedDependencyEntries(providedEntries);
621
626
  const providedKeys = new Set(provided.map((entry) => entry.key));
622
627
  const injectedEntriesByKey = new Map(
623
- injectedDependencies.map((dependency) => [dependency.entry.key, dependency.entry]),
628
+ injectedDependencies.map((dependency) => [
629
+ dependency.entry.key,
630
+ dependency.entry,
631
+ ]),
624
632
  );
625
633
  const missingProvider = mergeGeneratedDependencyEntries(
626
634
  injectedDependencies
@@ -628,16 +636,20 @@ function createGeneratedDependencyGroups(
628
636
  const dependencyKey = dependency.entry.key;
629
637
  return (
630
638
  !providedKeys.has(dependencyKey) &&
631
- !isDependencyProvidedElsewhere(sourceFile, dependency.dependencyText)
639
+ shouldGenerateLocalMissingProvider(
640
+ sourceFile,
641
+ dependency.dependencyText,
642
+ )
632
643
  );
633
644
  })
634
- .map((dependency) =>
635
- injectedEntriesByKey.get(dependency.entry.key) ??
636
- createGeneratedDependencyEntry(
637
- sourceFile,
638
- dependency.dependencyText,
639
- 'inject',
640
- ),
645
+ .map(
646
+ (dependency) =>
647
+ injectedEntriesByKey.get(dependency.entry.key) ??
648
+ createGeneratedDependencyEntry(
649
+ sourceFile,
650
+ dependency.dependencyText,
651
+ 'inject',
652
+ ),
641
653
  ),
642
654
  );
643
655
 
@@ -725,11 +737,11 @@ function createTrackedInjectHelperTypeText(
725
737
  ): string {
726
738
  const baseType = `GetInjectedServiceDependencies<typeof ${dependencyText}>`;
727
739
  if (!exposureTracking) {
728
- return [baseType + ' & {', ' usesWholeService: true;', '}'].join('\n');
740
+ return baseType;
729
741
  }
730
742
 
731
743
  return [
732
- `${baseType} & {`,
744
+ `DerivedService<${baseType}, {`,
733
745
  ` derivedPropertiesUsed: ${formatHelperExposurePropertiesType(
734
746
  dependencyText,
735
747
  exposureTracking.usedProperties.map((sourceKey) => ({
@@ -739,14 +751,12 @@ function createTrackedInjectHelperTypeText(
739
751
  )};`,
740
752
  ` derivedPropertiesExposed: ${formatHelperExposurePropertiesType(
741
753
  dependencyText,
742
- exposureTracking.exposedProperties.map(
743
- ({ exposedKey, sourceKey }) => ({
744
- propertyKey: exposedKey,
745
- sourceKey,
746
- }),
747
- ),
754
+ exposureTracking.exposedProperties.map(({ exposedKey, sourceKey }) => ({
755
+ propertyKey: exposedKey,
756
+ sourceKey,
757
+ })),
748
758
  )};`,
749
- '}',
759
+ '}>',
750
760
  ].join('\n');
751
761
  }
752
762
 
@@ -787,7 +797,9 @@ function resolveTrackedInjectHelper(
787
797
  ): TrackedHelperResolution | undefined {
788
798
  const symbol = expression.getSymbol() ?? expression.getType().getSymbol();
789
799
  const declarations =
790
- symbol?.getAliasedSymbol()?.getDeclarations() ?? symbol?.getDeclarations() ?? [];
800
+ symbol?.getAliasedSymbol()?.getDeclarations() ??
801
+ symbol?.getDeclarations() ??
802
+ [];
791
803
 
792
804
  for (const declaration of declarations) {
793
805
  const helper = resolveTrackedInjectHelperFromDeclaration(declaration);
@@ -809,10 +821,14 @@ function resolveTrackedInjectHelperFromDeclaration(
809
821
  const objectBindingPattern = declaration.getFirstAncestorByKind(
810
822
  SyntaxKind.ObjectBindingPattern,
811
823
  );
812
- const variableDeclaration =
813
- objectBindingPattern?.getFirstAncestorByKind(SyntaxKind.VariableDeclaration);
824
+ const variableDeclaration = objectBindingPattern?.getFirstAncestorByKind(
825
+ SyntaxKind.VariableDeclaration,
826
+ );
814
827
  const initializer = variableDeclaration?.getInitializer();
815
- if (!Node.isCallExpression(initializer) || !isServiceFactoryCall(initializer)) {
828
+ if (
829
+ !Node.isCallExpression(initializer) ||
830
+ !isServiceFactoryCall(initializer)
831
+ ) {
816
832
  return undefined;
817
833
  }
818
834
 
@@ -848,7 +864,10 @@ function isServiceFactoryCall(
848
864
  ): boolean {
849
865
  const expression = callExpression.getExpression();
850
866
  if (Node.isIdentifier(expression)) {
851
- return expression.getText() === 'craftService' || expression.getText() === 'toCraftService';
867
+ return (
868
+ expression.getText() === 'craftService' ||
869
+ expression.getText() === 'toCraftService'
870
+ );
852
871
  }
853
872
 
854
873
  if (Node.isPropertyAccessExpression(expression)) {
@@ -933,7 +952,9 @@ function extractHelperExposureBindings(
933
952
  }
934
953
 
935
954
  function getExposureReturnObjectLiteral(
936
- exposeArgument: import('ts-morph').ArrowFunction | import('ts-morph').FunctionExpression,
955
+ exposeArgument:
956
+ | import('ts-morph').ArrowFunction
957
+ | import('ts-morph').FunctionExpression,
937
958
  ): ObjectLiteralExpression | undefined {
938
959
  const body = exposeArgument.getBody();
939
960
  if (Node.isObjectLiteralExpression(body)) {
@@ -949,9 +970,13 @@ function getExposureReturnObjectLiteral(
949
970
  return undefined;
950
971
  }
951
972
 
952
- const returnStatement = [...body.getDescendantsOfKind(SyntaxKind.ReturnStatement)]
973
+ const returnStatement = [
974
+ ...body.getDescendantsOfKind(SyntaxKind.ReturnStatement),
975
+ ]
953
976
  .reverse()
954
- .find((statement) => Node.isObjectLiteralExpression(statement.getExpression()));
977
+ .find((statement) =>
978
+ Node.isObjectLiteralExpression(statement.getExpression()),
979
+ );
955
980
 
956
981
  const expression = returnStatement?.getExpression();
957
982
  return Node.isObjectLiteralExpression(expression) ? expression : undefined;
@@ -964,7 +989,8 @@ function extractHelperExposedProperties(
964
989
  const bindingMap = new Map(
965
990
  bindings.map((binding) => [binding.localName, binding.sourceKey]),
966
991
  );
967
- const exposedProperties: Array<{ exposedKey: string; sourceKey: string }> = [];
992
+ const exposedProperties: Array<{ exposedKey: string; sourceKey: string }> =
993
+ [];
968
994
 
969
995
  for (const property of objectLiteral.getProperties()) {
970
996
  if (Node.isShorthandPropertyAssignment(property)) {
@@ -1003,7 +1029,9 @@ function extractHelperExposedProperties(
1003
1029
  }
1004
1030
 
1005
1031
  function extractHelperYieldedProperties(
1006
- exposeArgument: import('ts-morph').ArrowFunction | import('ts-morph').FunctionExpression,
1032
+ exposeArgument:
1033
+ | import('ts-morph').ArrowFunction
1034
+ | import('ts-morph').FunctionExpression,
1007
1035
  bindings: HelperExposureBinding[],
1008
1036
  ): string[] {
1009
1037
  const bindingMap = new Map(
@@ -1155,13 +1183,24 @@ function ensureGeneratedDependencyTypeImports(
1155
1183
  }
1156
1184
 
1157
1185
  function formatGeneratedDependencyType(
1186
+ angularKind: AngularKind,
1187
+ className: string,
1158
1188
  generatedDependencyGroups: GeneratedDependencyGroups,
1159
1189
  ): string {
1160
1190
  return [
1161
1191
  '{',
1162
1192
  ` deps: ${formatGeneratedDependencyObject(generatedDependencyGroups.deps)};`,
1163
1193
  ` provided: ${formatGeneratedDependencyObject(generatedDependencyGroups.provided)};`,
1164
- ` missingProvider: ${formatGeneratedDependencyObject(generatedDependencyGroups.missingProvider)};`,
1194
+ ...(angularKind === 'component'
1195
+ ? [` publicProperties: GetPublicComponentProperties<${className}>;`]
1196
+ : []),
1197
+ ...(generatedDependencyGroups.missingProvider.length > 0
1198
+ ? [
1199
+ ` missingProvider: ${formatGeneratedDependencyObject(
1200
+ generatedDependencyGroups.missingProvider,
1201
+ )};`,
1202
+ ]
1203
+ : []),
1165
1204
  '}',
1166
1205
  ].join('\n');
1167
1206
  }
@@ -1180,7 +1219,9 @@ function formatGeneratedDependencyObject(
1180
1219
  ].join('\n');
1181
1220
  }
1182
1221
 
1183
- function formatGeneratedDependencyEntry(entry: GeneratedDependencyEntry): string {
1222
+ function formatGeneratedDependencyEntry(
1223
+ entry: GeneratedDependencyEntry,
1224
+ ): string {
1184
1225
  const typeLines = entry.typeText.split('\n');
1185
1226
  const lines = [
1186
1227
  ` ${formatObjectKey(entry.key)}: ${typeLines[0]}`,
@@ -1196,11 +1237,16 @@ function formatObjectKey(key: string): string {
1196
1237
 
1197
1238
  export function writeGeneratedDepsTypeAlias(
1198
1239
  sourceFile: SourceFile,
1240
+ angularKind: AngularKind,
1199
1241
  className: string,
1200
1242
  generatedDependencyGroups: GeneratedDependencyGroups,
1201
1243
  ): void {
1202
1244
  const generatedTypeName = getGeneratedDepsTypeName(className);
1203
- const generatedType = `GetDeps<${formatGeneratedDependencyType(generatedDependencyGroups)}>`;
1245
+ const generatedType = `GetDeps<${formatGeneratedDependencyType(
1246
+ angularKind,
1247
+ className,
1248
+ generatedDependencyGroups,
1249
+ )}>`;
1204
1250
  const existingTypeAlias = sourceFile.getTypeAlias(generatedTypeName);
1205
1251
 
1206
1252
  if (existingTypeAlias) {
@@ -1329,8 +1375,10 @@ export function ensureHelperImports(
1329
1375
  helperImportPath: string,
1330
1376
  ): void {
1331
1377
  const missingImports = [
1378
+ 'DerivedService',
1332
1379
  'GetDeps',
1333
1380
  'GetInjectedServiceDependencies',
1381
+ 'GetPublicComponentProperties',
1334
1382
  'GetServiceOutput',
1335
1383
  ].filter(
1336
1384
  (importName) =>
@@ -2280,16 +2328,14 @@ function isProvidedInInjectableTree(
2280
2328
  );
2281
2329
  }
2282
2330
 
2283
- function isDependencyProvidedElsewhere(
2331
+ function shouldGenerateLocalMissingProvider(
2284
2332
  sourceFile: SourceFile,
2285
2333
  dependencyText: string,
2286
2334
  ): boolean {
2287
- const trackedHelper = resolveTrackedInjectHelperByName(sourceFile, dependencyText);
2288
- if (trackedHelper) {
2289
- return trackedHelper.scope === 'global' || trackedHelper.scope === 'function';
2290
- }
2291
-
2292
- return isProvidedInInjectableTree(sourceFile, dependencyText);
2335
+ return (
2336
+ !resolveTrackedInjectHelperByName(sourceFile, dependencyText) &&
2337
+ !isProvidedInInjectableTree(sourceFile, dependencyText)
2338
+ );
2293
2339
  }
2294
2340
 
2295
2341
  function resolveTrackedInjectHelperByName(
@@ -2319,11 +2365,14 @@ function resolveDependencyIdentifierDeclarations(
2319
2365
  rootIdentifier: string,
2320
2366
  ): Node[] {
2321
2367
  for (const importDeclaration of sourceFile.getImportDeclarations()) {
2322
- const namedImport = importDeclaration.getNamedImports().find((specifier) => {
2323
- const localName =
2324
- specifier.getAliasNode()?.getText() ?? specifier.getNameNode().getText();
2325
- return localName === rootIdentifier;
2326
- });
2368
+ const namedImport = importDeclaration
2369
+ .getNamedImports()
2370
+ .find((specifier) => {
2371
+ const localName =
2372
+ specifier.getAliasNode()?.getText() ??
2373
+ specifier.getNameNode().getText();
2374
+ return localName === rootIdentifier;
2375
+ });
2327
2376
 
2328
2377
  if (!namedImport) {
2329
2378
  continue;
@@ -2590,8 +2639,10 @@ function getHelperImportSafety(
2590
2639
  helperImportPath: string,
2591
2640
  ): { safe: true; warnings: [] } | { safe: false; warnings: string[] } {
2592
2641
  const warnings = [
2642
+ 'DerivedService',
2593
2643
  'GetDeps',
2594
2644
  'GetInjectedServiceDependencies',
2645
+ 'GetPublicComponentProperties',
2595
2646
  'GetServiceOutput',
2596
2647
  ]
2597
2648
  .filter((helperName) =>