@craft-ng/dev-tools 0.5.0-beta.5 → 0.6.0-beta.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.
Files changed (94) hide show
  1. package/README.md +198 -23
  2. package/generators.json +26 -0
  3. package/package.json +23 -2
  4. package/src/bin/craft-migrate-primitives.d.ts +2 -0
  5. package/src/bin/craft-migrate-primitives.js +71 -0
  6. package/src/bin/craft-migrate-primitives.js.map +1 -0
  7. package/src/bin/craft-migrate-routes.d.ts +2 -0
  8. package/src/bin/craft-migrate-routes.js +77 -0
  9. package/src/bin/craft-migrate-routes.js.map +1 -0
  10. package/src/bin/craft-migrate-services.d.ts +2 -0
  11. package/src/bin/craft-migrate-services.js +75 -0
  12. package/src/bin/craft-migrate-services.js.map +1 -0
  13. package/src/bin/craft-migrate.d.ts +2 -0
  14. package/src/bin/craft-migrate.js +90 -0
  15. package/src/bin/craft-migrate.js.map +1 -0
  16. package/src/bin/craft.d.ts +2 -0
  17. package/src/bin/craft.js +166 -0
  18. package/src/bin/craft.js.map +1 -0
  19. package/src/eslint-rules/craft-computed-name-match.cjs +8 -125
  20. package/src/eslint-rules/craft-method-name-match.cjs +8 -166
  21. package/src/eslint-rules/craft-name-match-utils.cjs +179 -0
  22. package/src/eslint-rules/craft-signal-source-name-match.cjs +8 -0
  23. package/src/eslint-rules/craft-source-name-match.cjs +8 -0
  24. package/src/eslint-rules/global-exception-registry-match.cjs +78 -13
  25. package/src/eslint-rules/index.cjs +10 -2
  26. package/src/eslint-rules/require-cascade-route-di-check.cjs +223 -0
  27. package/src/eslint-rules/require-exception-component-di-check.cjs +66 -10
  28. package/src/eslint-rules/require-lazy-load-with-retry.cjs +148 -0
  29. package/src/eslint-rules/require-primitive-generator-unwrap.cjs +267 -0
  30. package/src/generators/route/compat.d.ts +3 -0
  31. package/src/generators/route/compat.js +6 -0
  32. package/src/generators/route/compat.js.map +1 -0
  33. package/src/generators/route/generator.d.ts +31 -0
  34. package/src/generators/route/generator.js +434 -0
  35. package/src/generators/route/generator.js.map +1 -0
  36. package/src/generators/route/schema.json +50 -0
  37. package/src/generators/route/split-schema.json +19 -0
  38. package/src/index.d.ts +9 -0
  39. package/src/index.js +9 -0
  40. package/src/index.js.map +1 -1
  41. package/src/scripts/angular-brand-codemod.d.ts +17 -0
  42. package/src/scripts/angular-brand-codemod.js +44 -8
  43. package/src/scripts/angular-brand-codemod.js.map +1 -1
  44. package/src/scripts/angular-brand-codemod.spec.ts +3 -3
  45. package/src/scripts/angular-brand-codemod.ts +78 -7
  46. package/src/scripts/migrate.d.ts +32 -0
  47. package/src/scripts/migrate.js +67 -0
  48. package/src/scripts/migrate.js.map +1 -0
  49. package/src/scripts/migrate.ts +128 -0
  50. package/src/scripts/migration-workspace.d.ts +2 -0
  51. package/src/scripts/migration-workspace.js +72 -0
  52. package/src/scripts/migration-workspace.js.map +1 -0
  53. package/src/scripts/migration-workspace.ts +93 -0
  54. package/src/scripts/primitives/migrate-primitive-generators.d.ts +27 -0
  55. package/src/scripts/primitives/migrate-primitive-generators.js +315 -0
  56. package/src/scripts/primitives/migrate-primitive-generators.js.map +1 -0
  57. package/src/scripts/primitives/migrate-primitive-generators.ts +402 -0
  58. package/src/scripts/primitives/migrate-primitives.d.ts +27 -0
  59. package/src/scripts/primitives/migrate-primitives.js +386 -0
  60. package/src/scripts/primitives/migrate-primitives.js.map +1 -0
  61. package/src/scripts/primitives/migrate-primitives.spec.ts +322 -0
  62. package/src/scripts/primitives/migrate-primitives.ts +601 -0
  63. package/src/scripts/primitives/migration-diagnostic.d.ts +8 -0
  64. package/src/scripts/primitives/migration-diagnostic.js +2 -0
  65. package/src/scripts/primitives/migration-diagnostic.js.map +1 -0
  66. package/src/scripts/primitives/migration-diagnostic.ts +14 -0
  67. package/src/scripts/routes/migrate-routes.d.ts +34 -0
  68. package/src/scripts/routes/migrate-routes.js +669 -0
  69. package/src/scripts/routes/migrate-routes.js.map +1 -0
  70. package/src/scripts/routes/migrate-routes.spec.ts +264 -0
  71. package/src/scripts/routes/migrate-routes.ts +895 -0
  72. package/src/scripts/routes/migration-diagnostic.d.ts +16 -0
  73. package/src/scripts/routes/migration-diagnostic.js +2 -0
  74. package/src/scripts/routes/migration-diagnostic.js.map +1 -0
  75. package/src/scripts/routes/migration-diagnostic.ts +25 -0
  76. package/src/scripts/routes/route-command.d.ts +75 -0
  77. package/src/scripts/routes/route-command.js +1187 -0
  78. package/src/scripts/routes/route-command.js.map +1 -0
  79. package/src/scripts/routes/route-command.spec.ts +553 -0
  80. package/src/scripts/routes/route-command.ts +1790 -0
  81. package/src/scripts/services/config.d.ts +2 -0
  82. package/src/scripts/services/config.js +39 -0
  83. package/src/scripts/services/config.js.map +1 -0
  84. package/src/scripts/services/config.ts +60 -0
  85. package/src/scripts/services/migrate-services.d.ts +29 -0
  86. package/src/scripts/services/migrate-services.js +929 -0
  87. package/src/scripts/services/migrate-services.js.map +1 -0
  88. package/src/scripts/services/migrate-services.spec.ts +761 -0
  89. package/src/scripts/services/migrate-services.ts +1333 -0
  90. package/src/scripts/services/migration-diagnostic.d.ts +8 -0
  91. package/src/scripts/services/migration-diagnostic.js +2 -0
  92. package/src/scripts/services/migration-diagnostic.js.map +1 -0
  93. package/src/scripts/services/migration-diagnostic.ts +28 -0
  94. package/src/eslint-rules/require-track-on-dependent-primitives.cjs +0 -219
@@ -0,0 +1,16 @@
1
+ export type RouteMigrationDiagnosticCode = 'DYNAMIC_PATH' | 'COMPONENT_NOT_RESOLVABLE' | 'ANGULAR_GUARD_REQUIRES_REWRITE' | 'MULTIPLE_GUARDS_REQUIRE_COMPOSITION' | 'PARENT_CONTEXT_UNKNOWN' | 'DYNAMIC_REDIRECT' | 'ROUTE_SPLIT_RECOMMENDED' | 'APP_CONFIG_REQUIRES_CRAFT_ROUTES';
2
+ export type RouteMigrationDiagnostic = {
3
+ code: RouteMigrationDiagnosticCode;
4
+ filePath: string;
5
+ routePath?: string;
6
+ message: string;
7
+ };
8
+ export type RouteMigrationStatus = {
9
+ kind: 'migrated';
10
+ } | {
11
+ kind: 'preserved';
12
+ } | {
13
+ kind: 'manual';
14
+ code: RouteMigrationDiagnosticCode;
15
+ message: string;
16
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=migration-diagnostic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration-diagnostic.js","sourceRoot":"","sources":["../../../../../../libs/dev-tools/src/scripts/routes/migration-diagnostic.ts"],"names":[],"mappings":""}
@@ -0,0 +1,25 @@
1
+ export type RouteMigrationDiagnosticCode =
2
+ | 'DYNAMIC_PATH'
3
+ | 'COMPONENT_NOT_RESOLVABLE'
4
+ | 'ANGULAR_GUARD_REQUIRES_REWRITE'
5
+ | 'MULTIPLE_GUARDS_REQUIRE_COMPOSITION'
6
+ | 'PARENT_CONTEXT_UNKNOWN'
7
+ | 'DYNAMIC_REDIRECT'
8
+ | 'ROUTE_SPLIT_RECOMMENDED'
9
+ | 'APP_CONFIG_REQUIRES_CRAFT_ROUTES';
10
+
11
+ export type RouteMigrationDiagnostic = {
12
+ code: RouteMigrationDiagnosticCode;
13
+ filePath: string;
14
+ routePath?: string;
15
+ message: string;
16
+ };
17
+
18
+ export type RouteMigrationStatus =
19
+ | { kind: 'migrated' }
20
+ | { kind: 'preserved' }
21
+ | {
22
+ kind: 'manual';
23
+ code: RouteMigrationDiagnosticCode;
24
+ message: string;
25
+ };
@@ -0,0 +1,75 @@
1
+ import { ArrayLiteralExpression, CallExpression, Project, SourceFile } from 'ts-morph';
2
+ export type RouteCommandDiagnostic = {
3
+ code: 'AMBIGUOUS_PARENT' | 'COMPONENT_GENERATION_FAILED' | 'COMPONENT_NOT_FOUND' | 'DUPLICATE_ROUTE' | 'INVALID_ARGUMENT' | 'LOCAL_DEPENDENCY' | 'NO_ANGULAR_CLI' | 'NO_MATCHING_ROUTES' | 'PARENT_NOT_FOUND' | 'TARGET_EXISTS' | 'VALIDATION_FAILED';
4
+ message: string;
5
+ filePath?: string;
6
+ routePath?: string;
7
+ };
8
+ export type RouteCommandPlan = {
9
+ action: 'add' | 'split';
10
+ summary: string;
11
+ files: string[];
12
+ };
13
+ export type RouteCommandResult = {
14
+ changedFiles: string[];
15
+ diagnostics: RouteCommandDiagnostic[];
16
+ exitCode: number;
17
+ plan?: RouteCommandPlan;
18
+ };
19
+ export type RouteFileSystem = {
20
+ exists(filePath: string): boolean;
21
+ listFiles(rootDir: string): string[];
22
+ read(filePath: string): string | undefined;
23
+ write(filePath: string, content: string): Promise<void> | void;
24
+ };
25
+ export type RouteAddOptions = {
26
+ rootDir?: string;
27
+ project?: string;
28
+ path: string;
29
+ parent?: string;
30
+ component?: string;
31
+ createComponent?: string;
32
+ featureFile?: string;
33
+ redirectTo?: string;
34
+ dryRun?: boolean;
35
+ yes?: boolean;
36
+ json?: boolean;
37
+ validate?: boolean;
38
+ fileSystem?: RouteFileSystem;
39
+ log?: (message: string) => void;
40
+ confirm?: (plan: RouteCommandPlan) => Promise<boolean>;
41
+ };
42
+ export type RouteSplitOptions = {
43
+ rootDir?: string;
44
+ project?: string;
45
+ parent: string;
46
+ prefix: string;
47
+ target: string;
48
+ dryRun?: boolean;
49
+ yes?: boolean;
50
+ json?: boolean;
51
+ validate?: boolean;
52
+ fileSystem?: RouteFileSystem;
53
+ log?: (message: string) => void;
54
+ confirm?: (plan: RouteCommandPlan) => Promise<boolean>;
55
+ };
56
+ export type RouteCollection = {
57
+ collectionName: string;
58
+ routesName: string;
59
+ sourceFile: SourceFile;
60
+ call: CallExpression;
61
+ routes: ArrayLiteralExpression;
62
+ };
63
+ export declare function runRouteAdd(options: RouteAddOptions): Promise<RouteCommandResult>;
64
+ export declare function runRouteSplit(options: RouteSplitOptions): Promise<RouteCommandResult>;
65
+ export declare function discoverRouteCollections(project: Project, rootDir?: string): RouteCollection[];
66
+ export declare function listRouteCollections(rootDir?: string, projectOption?: string, fileSystem?: RouteFileSystem): Array<{
67
+ filePath: string;
68
+ collectionName: string;
69
+ routesName: string;
70
+ }>;
71
+ export declare function listAngularProjects(rootDir?: string): string[];
72
+ export declare function validateRouteChangedFiles(rootDir: string, sourceRoot: string, tsConfigFilePath: string, files: string[], eslintBaseline: Set<string>, options?: {
73
+ skipTypeCheck?: boolean;
74
+ }): Promise<RouteCommandDiagnostic[]>;
75
+ export declare function captureRouteEslintBaseline(rootDir: string, sourceRoot: string, files: string[]): Promise<Set<string>>;