@craft-ts/dev-tools 0.7.0-beta.13

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 (237) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +154 -0
  3. package/generators.json +26 -0
  4. package/package.json +119 -0
  5. package/src/bin/craft-architecture-check.d.ts +2 -0
  6. package/src/bin/craft-architecture-check.js +51 -0
  7. package/src/bin/craft-architecture-check.js.map +1 -0
  8. package/src/bin/craft-brand.d.ts +2 -0
  9. package/src/bin/craft-brand.js +9 -0
  10. package/src/bin/craft-brand.js.map +1 -0
  11. package/src/bin/craft-graph.d.ts +2 -0
  12. package/src/bin/craft-graph.js +72 -0
  13. package/src/bin/craft-graph.js.map +1 -0
  14. package/src/bin/craft-migrate-architecture.d.ts +2 -0
  15. package/src/bin/craft-migrate-architecture.js +64 -0
  16. package/src/bin/craft-migrate-architecture.js.map +1 -0
  17. package/src/bin/craft-migrate-components.d.ts +2 -0
  18. package/src/bin/craft-migrate-components.js +67 -0
  19. package/src/bin/craft-migrate-components.js.map +1 -0
  20. package/src/bin/craft-migrate-primitives.d.ts +2 -0
  21. package/src/bin/craft-migrate-primitives.js +71 -0
  22. package/src/bin/craft-migrate-primitives.js.map +1 -0
  23. package/src/bin/craft-migrate-routes.d.ts +2 -0
  24. package/src/bin/craft-migrate-routes.js +77 -0
  25. package/src/bin/craft-migrate-routes.js.map +1 -0
  26. package/src/bin/craft-migrate-services.d.ts +2 -0
  27. package/src/bin/craft-migrate-services.js +75 -0
  28. package/src/bin/craft-migrate-services.js.map +1 -0
  29. package/src/bin/craft-migrate-template.d.ts +2 -0
  30. package/src/bin/craft-migrate-template.js +68 -0
  31. package/src/bin/craft-migrate-template.js.map +1 -0
  32. package/src/bin/craft-migrate.d.ts +2 -0
  33. package/src/bin/craft-migrate.js +91 -0
  34. package/src/bin/craft-migrate.js.map +1 -0
  35. package/src/bin/craft.d.ts +2 -0
  36. package/src/bin/craft.js +318 -0
  37. package/src/bin/craft.js.map +1 -0
  38. package/src/eslint-rules/anchor-has-href.cjs +35 -0
  39. package/src/eslint-rules/app-start-registry-match.cjs +355 -0
  40. package/src/eslint-rules/button-has-type.cjs +50 -0
  41. package/src/eslint-rules/control-has-accessible-name.cjs +56 -0
  42. package/src/eslint-rules/craft-component-name-match.cjs +8 -0
  43. package/src/eslint-rules/craft-computed-name-match.cjs +63 -0
  44. package/src/eslint-rules/craft-css-token-registry.cjs +17 -0
  45. package/src/eslint-rules/craft-css-var-naming.cjs +18 -0
  46. package/src/eslint-rules/craft-css-vars-contract.cjs +34 -0
  47. package/src/eslint-rules/craft-directive-name-match.cjs +8 -0
  48. package/src/eslint-rules/craft-method-name-match.cjs +8 -0
  49. package/src/eslint-rules/craft-name-match-utils.cjs +179 -0
  50. package/src/eslint-rules/craft-primitive-context.cjs +46 -0
  51. package/src/eslint-rules/craft-signal-source-name-match.cjs +8 -0
  52. package/src/eslint-rules/craft-source-name-match.cjs +8 -0
  53. package/src/eslint-rules/craft-styles-scope-safe.cjs +25 -0
  54. package/src/eslint-rules/css-rule-utils.cjs +109 -0
  55. package/src/eslint-rules/global-exception-registry-match.cjs +562 -0
  56. package/src/eslint-rules/heading-has-content.cjs +31 -0
  57. package/src/eslint-rules/html-helpers.cjs +115 -0
  58. package/src/eslint-rules/hyperscript-walk.cjs +249 -0
  59. package/src/eslint-rules/iframe-has-title.cjs +26 -0
  60. package/src/eslint-rules/img-has-alt.cjs +28 -0
  61. package/src/eslint-rules/index.cjs +209 -0
  62. package/src/eslint-rules/index.d.cts +5 -0
  63. package/src/eslint-rules/label-has-associated-control.cjs +67 -0
  64. package/src/eslint-rules/no-async-await.cjs +46 -0
  65. package/src/eslint-rules/no-craft-computed-side-effects.cjs +301 -0
  66. package/src/eslint-rules/no-craft-use-in-template.cjs +89 -0
  67. package/src/eslint-rules/no-craft-use.cjs +42 -0
  68. package/src/eslint-rules/no-direct-temporal-globals.cjs +73 -0
  69. package/src/eslint-rules/no-effect-in-params.cjs +265 -0
  70. package/src/eslint-rules/no-effect-outside-loaders.cjs +3 -0
  71. package/src/eslint-rules/no-ephemeral-template-form-state.cjs +131 -0
  72. package/src/eslint-rules/no-hardcoded-design-values.cjs +15 -0
  73. package/src/eslint-rules/no-heading-level-skip.cjs +101 -0
  74. package/src/eslint-rules/no-imperative-craft-resource-trigger.cjs +291 -0
  75. package/src/eslint-rules/no-important-in-component-styles.cjs +12 -0
  76. package/src/eslint-rules/no-injection-token.cjs +173 -0
  77. package/src/eslint-rules/no-invalid-insertion-pipe.cjs +162 -0
  78. package/src/eslint-rules/no-manual-route-provider-list.cjs +85 -0
  79. package/src/eslint-rules/no-noninteractive-element-interactions.cjs +66 -0
  80. package/src/eslint-rules/no-positive-tabindex.cjs +44 -0
  81. package/src/eslint-rules/no-redundant-primitive-insertion.cjs +361 -0
  82. package/src/eslint-rules/no-render-writes.cjs +106 -0
  83. package/src/eslint-rules/no-throw.cjs +132 -0
  84. package/src/eslint-rules/no-transition-actions.cjs +133 -0
  85. package/src/eslint-rules/no-type-assertions-in-template.cjs +211 -0
  86. package/src/eslint-rules/no-widened-route-provider-context.cjs +39 -0
  87. package/src/eslint-rules/prefer-browser-boundaries.cjs +92 -0
  88. package/src/eslint-rules/prefer-craft-http-transport.cjs +103 -0
  89. package/src/eslint-rules/prefer-craft-template-blocks.cjs +492 -0
  90. package/src/eslint-rules/prefer-direct-yieldable-callback.cjs +105 -0
  91. package/src/eslint-rules/prefer-named-html-helpers.cjs +33 -0
  92. package/src/eslint-rules/prefer-query-method-over-state-trigger.cjs +282 -0
  93. package/src/eslint-rules/prefer-relative-heading.cjs +43 -0
  94. package/src/eslint-rules/provide-host-name-match-component.cjs +455 -0
  95. package/src/eslint-rules/recommended-config.cjs +77 -0
  96. package/src/eslint-rules/require-assert-exhaustive-route-exceptions.cjs +259 -0
  97. package/src/eslint-rules/require-cascade-route-di-check.cjs +223 -0
  98. package/src/eslint-rules/require-child-route-mount-check.cjs +224 -0
  99. package/src/eslint-rules/require-component-monitoring.cjs +212 -0
  100. package/src/eslint-rules/require-craft-exception-handler.cjs +142 -0
  101. package/src/eslint-rules/require-craft-method-for-yieldable-callback.cjs +236 -0
  102. package/src/eslint-rules/require-craft-resource-trigger-yield.cjs +209 -0
  103. package/src/eslint-rules/require-effect-adapters.cjs +86 -0
  104. package/src/eslint-rules/require-exception-component-di-check.cjs +314 -0
  105. package/src/eslint-rules/require-focus-visible.cjs +36 -0
  106. package/src/eslint-rules/require-interactive-local-name.cjs +105 -0
  107. package/src/eslint-rules/require-lazy-load-with-retry.cjs +148 -0
  108. package/src/eslint-rules/require-outlet-heading-section.cjs +70 -0
  109. package/src/eslint-rules/require-pending-component-di-check.cjs +490 -0
  110. package/src/eslint-rules/require-primitive-context.cjs +156 -0
  111. package/src/eslint-rules/require-primitive-derived-property.cjs +598 -0
  112. package/src/eslint-rules/require-primitive-generator-unwrap.cjs +274 -0
  113. package/src/eslint-rules/require-reactive-template-bindings.cjs +305 -0
  114. package/src/eslint-rules/require-reduced-motion.cjs +38 -0
  115. package/src/eslint-rules/require-route-heading-outline.cjs +166 -0
  116. package/src/eslint-rules/require-yieldable-insertion-write.cjs +98 -0
  117. package/src/eslint-rules/require-yieldable-reactive-read.cjs +102 -0
  118. package/src/eslint-rules/require-yieldable-template-method.cjs +424 -0
  119. package/src/eslint-rules/role-has-required-aria.cjs +38 -0
  120. package/src/eslint-rules/server-function-client-match.cjs +283 -0
  121. package/src/eslint-rules/target-blank-noopener.cjs +31 -0
  122. package/src/eslint-rules/template-element-name-unique.cjs +124 -0
  123. package/src/eslint-rules/valid-aria.cjs +38 -0
  124. package/src/generators/route/compat.d.ts +3 -0
  125. package/src/generators/route/compat.js +6 -0
  126. package/src/generators/route/compat.js.map +1 -0
  127. package/src/generators/route/generator.d.ts +31 -0
  128. package/src/generators/route/generator.js +402 -0
  129. package/src/generators/route/generator.js.map +1 -0
  130. package/src/generators/route/schema.json +50 -0
  131. package/src/generators/route/split-schema.json +19 -0
  132. package/src/index.d.ts +21 -0
  133. package/src/index.js +23 -0
  134. package/src/index.js.map +1 -0
  135. package/src/scripts/angular-brand-codemod.d.ts +139 -0
  136. package/src/scripts/angular-brand-codemod.js +2318 -0
  137. package/src/scripts/angular-brand-codemod.js.map +1 -0
  138. package/src/scripts/angular-brand-codemod.ts +3985 -0
  139. package/src/scripts/architecture/migrate-architecture.d.ts +14 -0
  140. package/src/scripts/architecture/migrate-architecture.js +534 -0
  141. package/src/scripts/architecture/migrate-architecture.js.map +1 -0
  142. package/src/scripts/architecture/migrate-architecture.ts +653 -0
  143. package/src/scripts/architecture-graph.d.ts +368 -0
  144. package/src/scripts/architecture-graph.js +2191 -0
  145. package/src/scripts/architecture-graph.js.map +1 -0
  146. package/src/scripts/architecture-graph.ts +3136 -0
  147. package/src/scripts/components/migrate-components.d.ts +20 -0
  148. package/src/scripts/components/migrate-components.js +163 -0
  149. package/src/scripts/components/migrate-components.js.map +1 -0
  150. package/src/scripts/components/migrate-components.ts +227 -0
  151. package/src/scripts/components/migration-diagnostic.d.ts +7 -0
  152. package/src/scripts/components/migration-diagnostic.js +2 -0
  153. package/src/scripts/components/migration-diagnostic.js.map +1 -0
  154. package/src/scripts/components/migration-diagnostic.ts +8 -0
  155. package/src/scripts/create/create-project.d.ts +20 -0
  156. package/src/scripts/create/create-project.js +783 -0
  157. package/src/scripts/create/create-project.js.map +1 -0
  158. package/src/scripts/create/create-project.ts +849 -0
  159. package/src/scripts/data-flow-graph.d.ts +36 -0
  160. package/src/scripts/data-flow-graph.js +186 -0
  161. package/src/scripts/data-flow-graph.js.map +1 -0
  162. package/src/scripts/data-flow-graph.ts +240 -0
  163. package/src/scripts/dependency-graph.d.ts +152 -0
  164. package/src/scripts/dependency-graph.js +4456 -0
  165. package/src/scripts/dependency-graph.js.map +1 -0
  166. package/src/scripts/dependency-graph.ts +5908 -0
  167. package/src/scripts/effect-dependency-graph.d.ts +89 -0
  168. package/src/scripts/effect-dependency-graph.js +487 -0
  169. package/src/scripts/effect-dependency-graph.js.map +1 -0
  170. package/src/scripts/effect-dependency-graph.ts +630 -0
  171. package/src/scripts/migrate.d.ts +37 -0
  172. package/src/scripts/migrate.js +98 -0
  173. package/src/scripts/migrate.js.map +1 -0
  174. package/src/scripts/migrate.ts +162 -0
  175. package/src/scripts/migration-workspace.d.ts +2 -0
  176. package/src/scripts/migration-workspace.js +67 -0
  177. package/src/scripts/migration-workspace.js.map +1 -0
  178. package/src/scripts/migration-workspace.ts +93 -0
  179. package/src/scripts/primitives/migrate-named-primitives.d.ts +50 -0
  180. package/src/scripts/primitives/migrate-named-primitives.js +487 -0
  181. package/src/scripts/primitives/migrate-named-primitives.js.map +1 -0
  182. package/src/scripts/primitives/migrate-named-primitives.ts +627 -0
  183. package/src/scripts/primitives/migrate-primitive-generators.d.ts +30 -0
  184. package/src/scripts/primitives/migrate-primitive-generators.js +309 -0
  185. package/src/scripts/primitives/migrate-primitive-generators.js.map +1 -0
  186. package/src/scripts/primitives/migrate-primitive-generators.ts +410 -0
  187. package/src/scripts/primitives/migrate-primitives.d.ts +27 -0
  188. package/src/scripts/primitives/migrate-primitives.js +427 -0
  189. package/src/scripts/primitives/migrate-primitives.js.map +1 -0
  190. package/src/scripts/primitives/migrate-primitives.ts +655 -0
  191. package/src/scripts/primitives/migrate-yieldable-reactive-reads.d.ts +23 -0
  192. package/src/scripts/primitives/migrate-yieldable-reactive-reads.js +382 -0
  193. package/src/scripts/primitives/migrate-yieldable-reactive-reads.js.map +1 -0
  194. package/src/scripts/primitives/migrate-yieldable-reactive-reads.ts +499 -0
  195. package/src/scripts/primitives/migration-diagnostic.d.ts +8 -0
  196. package/src/scripts/primitives/migration-diagnostic.js +2 -0
  197. package/src/scripts/primitives/migration-diagnostic.js.map +1 -0
  198. package/src/scripts/primitives/migration-diagnostic.ts +15 -0
  199. package/src/scripts/routes/migrate-routes.d.ts +34 -0
  200. package/src/scripts/routes/migrate-routes.js +657 -0
  201. package/src/scripts/routes/migrate-routes.js.map +1 -0
  202. package/src/scripts/routes/migrate-routes.ts +895 -0
  203. package/src/scripts/routes/migration-diagnostic.d.ts +16 -0
  204. package/src/scripts/routes/migration-diagnostic.js +2 -0
  205. package/src/scripts/routes/migration-diagnostic.js.map +1 -0
  206. package/src/scripts/routes/migration-diagnostic.ts +25 -0
  207. package/src/scripts/routes/route-command.d.ts +75 -0
  208. package/src/scripts/routes/route-command.js +1169 -0
  209. package/src/scripts/routes/route-command.js.map +1 -0
  210. package/src/scripts/routes/route-command.ts +1807 -0
  211. package/src/scripts/routes/verify-routes.d.ts +60 -0
  212. package/src/scripts/routes/verify-routes.js +1121 -0
  213. package/src/scripts/routes/verify-routes.js.map +1 -0
  214. package/src/scripts/routes/verify-routes.ts +1511 -0
  215. package/src/scripts/services/config.d.ts +2 -0
  216. package/src/scripts/services/config.js +38 -0
  217. package/src/scripts/services/config.js.map +1 -0
  218. package/src/scripts/services/config.ts +60 -0
  219. package/src/scripts/services/migrate-services.d.ts +29 -0
  220. package/src/scripts/services/migrate-services.js +924 -0
  221. package/src/scripts/services/migrate-services.js.map +1 -0
  222. package/src/scripts/services/migrate-services.ts +1348 -0
  223. package/src/scripts/services/migration-diagnostic.d.ts +8 -0
  224. package/src/scripts/services/migration-diagnostic.js +2 -0
  225. package/src/scripts/services/migration-diagnostic.js.map +1 -0
  226. package/src/scripts/services/migration-diagnostic.ts +28 -0
  227. package/src/scripts/template/migrate-template.d.ts +16 -0
  228. package/src/scripts/template/migrate-template.js +349 -0
  229. package/src/scripts/template/migrate-template.js.map +1 -0
  230. package/src/scripts/template/migrate-template.ts +418 -0
  231. package/src/template-migration.d.ts +1 -0
  232. package/src/template-migration.js +2 -0
  233. package/src/template-migration.js.map +1 -0
  234. package/src/testing.d.ts +19 -0
  235. package/src/testing.js +2 -0
  236. package/src/testing.js.map +1 -0
  237. package/src/tsconfig.codemod.json +13 -0
@@ -0,0 +1,402 @@
1
+ import { execFile } from 'node:child_process';
2
+ import { existsSync } from 'node:fs';
3
+ import { basename, dirname, join, relative, resolve, sep } from 'node:path';
4
+ import { createInterface } from 'node:readline/promises';
5
+ import { promisify } from 'node:util';
6
+ import { getProjects, logger, names, readProjectConfiguration, } from '@nx/devkit';
7
+ import { captureRouteEslintBaseline, listRouteCollections, runRouteAdd, runRouteSplit, validateRouteChangedFiles, } from '../../scripts/routes/route-command.js';
8
+ const execFileAsync = promisify(execFile);
9
+ export async function routeGenerator(tree, options) {
10
+ const selected = selectAngularProject(tree, options.project);
11
+ const fileSystem = createTreeFileSystem(tree);
12
+ const componentBase = join(selected.configuration.sourceRoot ??
13
+ join(selected.configuration.root, 'src'), 'app');
14
+ const parent = await resolveRouteParentOption(listRouteCollections(tree.root, selected.tsConfig, fileSystem), {
15
+ configuredParent: options.parent,
16
+ rootDir: tree.root,
17
+ routePath: options.path,
18
+ });
19
+ const target = await resolveRouteTargetOptions(options, { componentBase });
20
+ const preview = await runRouteAdd({
21
+ rootDir: tree.root,
22
+ project: selected.tsConfig,
23
+ path: options.path,
24
+ parent,
25
+ component: target.component,
26
+ createComponent: target.createComponent?.name,
27
+ featureFile: options.featureFile,
28
+ redirectTo: target.redirectTo,
29
+ dryRun: true,
30
+ yes: true,
31
+ validate: false,
32
+ fileSystem,
33
+ log: () => undefined,
34
+ });
35
+ assertSuccessful(preview);
36
+ printGeneratorPlan(tree, preview, target.createComponent, componentBase);
37
+ if (!(await confirmGeneratorPlan(options))) {
38
+ logger.info('Cancelled. No files changed.');
39
+ return;
40
+ }
41
+ let component = target.component;
42
+ if (target.createComponent) {
43
+ component = await generateComponent(tree, selected.name, selected.configuration, target.createComponent);
44
+ }
45
+ const result = await runRouteAdd({
46
+ rootDir: tree.root,
47
+ project: selected.tsConfig,
48
+ path: options.path,
49
+ parent,
50
+ component,
51
+ featureFile: options.featureFile,
52
+ redirectTo: target.redirectTo,
53
+ yes: true,
54
+ validate: false,
55
+ fileSystem,
56
+ log: () => undefined,
57
+ });
58
+ assertSuccessful(result);
59
+ const eslintBaseline = options.skipValidation
60
+ ? new Set()
61
+ : await captureRouteEslintBaseline(tree.root, resolve(tree.root, selected.configuration.root), result.changedFiles);
62
+ return options.skipValidation
63
+ ? undefined
64
+ : createValidationCallback(tree, selected, result.changedFiles, eslintBaseline);
65
+ }
66
+ export async function resolveRouteParentOption(parents, interactive) {
67
+ if (interactive.configuredParent)
68
+ return interactive.configuredParent;
69
+ if (parents.length === 0 || (!interactive.ask && !isInteractive())) {
70
+ return undefined;
71
+ }
72
+ if (!interactive.ask) {
73
+ const readline = createInterface({
74
+ input: process.stdin,
75
+ output: process.stdout,
76
+ });
77
+ try {
78
+ return await resolveRouteParentOption(parents, {
79
+ ...interactive,
80
+ ask: (prompt) => readline.question(prompt),
81
+ });
82
+ }
83
+ finally {
84
+ readline.close();
85
+ }
86
+ }
87
+ const sortedParents = [...parents].sort((left, right) => left.filePath.localeCompare(right.filePath));
88
+ logger.info([
89
+ 'Available route parents:',
90
+ ` 0. Automatic selection from ${interactive.routePath}`,
91
+ ...sortedParents.map((parent, index) => {
92
+ const filePath = relative(interactive.rootDir, parent.filePath)
93
+ .split(sep)
94
+ .join('/');
95
+ return ` ${index + 1}. ${parent.routesName} — ${filePath} (prefix: ${parent.collectionName})`;
96
+ }),
97
+ ].join('\n'));
98
+ let selection;
99
+ do {
100
+ const answer = (await interactive.ask('Parent number [0]: ')).trim();
101
+ selection = answer === '' ? 0 : Number(answer);
102
+ } while (!Number.isInteger(selection) ||
103
+ selection < 0 ||
104
+ selection > sortedParents.length);
105
+ if (selection === 0)
106
+ return undefined;
107
+ const selected = sortedParents[selection - 1];
108
+ const filePath = relative(interactive.rootDir, selected.filePath)
109
+ .split(sep)
110
+ .join('/');
111
+ return `${filePath}#${selected.routesName}`;
112
+ }
113
+ export async function resolveRouteTargetOptions(options, interactive) {
114
+ const configuredTargets = [
115
+ ['component', options.component],
116
+ ['createComponent', options.createComponent],
117
+ ['redirectTo', options.redirectTo],
118
+ ].filter(([, value]) => value !== undefined);
119
+ if (configuredTargets.length > 1) {
120
+ throw new Error('Choose exactly one route target: --component, --create-component, or --redirect-to.');
121
+ }
122
+ if (configuredTargets.length === 1) {
123
+ const [name, value] = configuredTargets[0];
124
+ if (name === 'createComponent') {
125
+ return { createComponent: parseCreateComponentOption(value) };
126
+ }
127
+ return { [name]: value };
128
+ }
129
+ if (!interactive.ask) {
130
+ if (!isInteractive()) {
131
+ throw new Error('A route target is required. Pass --component, --create-component, or --redirect-to.');
132
+ }
133
+ const readline = createInterface({
134
+ input: process.stdin,
135
+ output: process.stdout,
136
+ });
137
+ try {
138
+ return await resolveRouteTargetOptions(options, {
139
+ ...interactive,
140
+ ask: (prompt) => readline.question(prompt),
141
+ });
142
+ }
143
+ finally {
144
+ readline.close();
145
+ }
146
+ }
147
+ const ask = interactive.ask;
148
+ let selection;
149
+ do {
150
+ selection = (await ask('Target: [e]xisting component, [c]reate component, [r]edirect? '))
151
+ .trim()
152
+ .toLowerCase();
153
+ } while (!['e', 'existing', 'c', 'create', 'r', 'redirect'].includes(selection));
154
+ if (selection === 'e' || selection === 'existing') {
155
+ return {
156
+ component: await askForRequiredValue(ask, 'Component file#Class: '),
157
+ };
158
+ }
159
+ if (selection === 'c' || selection === 'create') {
160
+ const path = await askForRequiredValue(ask, `Angular component path (relative to ${interactive.componentBase}): `);
161
+ return {
162
+ createComponent: {
163
+ path,
164
+ name: await askForRequiredValue(ask, 'Angular component name: '),
165
+ },
166
+ };
167
+ }
168
+ return {
169
+ redirectTo: await askForRequiredValue(ask, 'Redirect target: '),
170
+ };
171
+ }
172
+ function isInteractive() {
173
+ return (!!process.stdin.isTTY &&
174
+ !!process.stdout.isTTY &&
175
+ process.env['NX_INTERACTIVE'] !== 'false');
176
+ }
177
+ function parseCreateComponentOption(value) {
178
+ const name = basename(value);
179
+ const parent = dirname(value);
180
+ return {
181
+ name,
182
+ path: parent === '.' ? name : parent,
183
+ };
184
+ }
185
+ async function askForRequiredValue(ask, prompt) {
186
+ let value;
187
+ do
188
+ value = (await ask(prompt)).trim();
189
+ while (!value);
190
+ return value;
191
+ }
192
+ export async function routeSplitGenerator(tree, options) {
193
+ const selected = selectAngularProject(tree, options.project);
194
+ const result = await runRouteSplit({
195
+ rootDir: tree.root,
196
+ project: selected.tsConfig,
197
+ parent: options.parent,
198
+ prefix: options.prefix,
199
+ target: options.target,
200
+ yes: true,
201
+ validate: false,
202
+ fileSystem: createTreeFileSystem(tree),
203
+ log: (message) => logger.info(message),
204
+ });
205
+ assertSuccessful(result);
206
+ const eslintBaseline = options.skipValidation
207
+ ? new Set()
208
+ : await captureRouteEslintBaseline(tree.root, resolve(tree.root, selected.configuration.root), result.changedFiles);
209
+ return options.skipValidation
210
+ ? undefined
211
+ : createValidationCallback(tree, selected, result.changedFiles, eslintBaseline);
212
+ }
213
+ function selectAngularProject(tree, requestedProject) {
214
+ const projects = getProjects(tree);
215
+ let name = requestedProject;
216
+ if (!name) {
217
+ const applications = [...projects.entries()].filter(([, configuration]) => findAngularApplicationTsConfig(tree, configuration));
218
+ if (applications.length !== 1) {
219
+ throw new Error('Choose a project with --project when the workspace does not contain exactly one Angular application.');
220
+ }
221
+ name = applications[0][0];
222
+ }
223
+ const configuration = readProjectConfiguration(tree, name);
224
+ const tsConfig = findAngularApplicationTsConfig(tree, configuration);
225
+ if (!tsConfig) {
226
+ throw new Error(`Project ${name} is not an Angular application.`);
227
+ }
228
+ return { configuration, name, tsConfig };
229
+ }
230
+ function findAngularApplicationTsConfig(tree, configuration) {
231
+ if (configuration.projectType !== 'application')
232
+ return undefined;
233
+ const configuredTsConfig = configuration.targets?.['build']?.options?.['tsConfig'];
234
+ const fallbackTsConfig = join(configuration.root, 'tsconfig.app.json');
235
+ const tsConfig = typeof configuredTsConfig === 'string'
236
+ ? configuredTsConfig
237
+ : fallbackTsConfig;
238
+ return tree.exists(tsConfig) ? tsConfig : undefined;
239
+ }
240
+ function createTreeFileSystem(tree) {
241
+ const toTreePath = (filePath) => {
242
+ const value = relative(tree.root, resolve(filePath));
243
+ return value.split(sep).join('/');
244
+ };
245
+ return {
246
+ exists: (filePath) => tree.exists(toTreePath(filePath)),
247
+ listFiles: (rootDir) => listTreeFiles(tree, toTreePath(rootDir)).map((filePath) => resolve(tree.root, filePath)),
248
+ read: (filePath) => tree.read(toTreePath(filePath), 'utf8') ?? undefined,
249
+ write: (filePath, content) => tree.write(toTreePath(filePath), content),
250
+ };
251
+ }
252
+ function listTreeFiles(tree, root = '') {
253
+ if (tree.isFile(root))
254
+ return [root];
255
+ const result = [];
256
+ const visit = (directory) => {
257
+ for (const child of tree.children(directory)) {
258
+ if (['node_modules', 'dist', '.angular', '.git'].includes(child)) {
259
+ continue;
260
+ }
261
+ const filePath = directory ? `${directory}/${child}` : child;
262
+ if (tree.isFile(filePath))
263
+ result.push(filePath);
264
+ else
265
+ visit(filePath);
266
+ }
267
+ };
268
+ visit(root === '.' ? '' : root);
269
+ return result;
270
+ }
271
+ async function generateComponent(tree, projectName, project, target) {
272
+ const sourceRoot = project.sourceRoot ?? join(project.root, 'src');
273
+ const componentBase = join(sourceRoot, 'app');
274
+ const requestedPath = resolveComponentPath(project, componentBase, target);
275
+ const filePath = requestedPath.endsWith('.ts')
276
+ ? requestedPath
277
+ : `${requestedPath}.ts`;
278
+ const exportName = toComponentExportName(target.name);
279
+ // Scaffolds a Craft SFC. This used to delegate to Angular's component
280
+ // schematic and then read the class name back off the @Component decorator.
281
+ tree.write(filePath, `import { craftComponent } from '@craft-ts/component';
282
+ import { p } from '@craft-ts/component';
283
+
284
+ export const ${exportName} = craftComponent(
285
+ '${target.name}',
286
+ {},
287
+ () => ({}),
288
+ () => p('${target.name} works'),
289
+ );
290
+
291
+ export default ${exportName};
292
+ `);
293
+ return `${filePath}#${exportName}`;
294
+ }
295
+ function toComponentExportName(name) {
296
+ return name
297
+ .split(/[^a-zA-Z0-9]+/)
298
+ .filter(Boolean)
299
+ .map((part) => part[0].toUpperCase() + part.slice(1))
300
+ .join('');
301
+ }
302
+ function resolveComponentPath(project, componentBase, target) {
303
+ const path = target.path === '.' ? '' : target.path;
304
+ const directory = path.startsWith(project.root)
305
+ ? path
306
+ : join(componentBase, path);
307
+ return join(directory, names(target.name).fileName);
308
+ }
309
+ function printGeneratorPlan(tree, result, component, componentBase) {
310
+ const lines = ['Planned changes (dry view):'];
311
+ if (component) {
312
+ const requestedPath = join(componentBase, component.path === '.' ? '' : component.path, names(component.name).fileName);
313
+ lines.push(` CREATE ${requestedPath}.ts (inline template and styles; filename normalized by Angular)`);
314
+ }
315
+ for (const filePath of result.plan?.files ?? []) {
316
+ const treePath = relative(tree.root, filePath).split(sep).join('/');
317
+ lines.push(` ${tree.exists(treePath) ? 'UPDATE' : 'CREATE'} ${treePath}`);
318
+ }
319
+ logger.info(lines.join('\n'));
320
+ }
321
+ async function confirmGeneratorPlan(options) {
322
+ if (options.yes || process.env['NX_DRY_RUN'] === 'true')
323
+ return true;
324
+ if (!process.stdin.isTTY ||
325
+ !process.stdout.isTTY ||
326
+ process.env['NX_INTERACTIVE'] === 'false') {
327
+ throw new Error('Confirmation is required. Re-run interactively or pass --yes.');
328
+ }
329
+ const readline = createInterface({
330
+ input: process.stdin,
331
+ output: process.stdout,
332
+ });
333
+ try {
334
+ const answer = (await readline.question('Apply this plan? [y/N] '))
335
+ .trim()
336
+ .toLowerCase();
337
+ return answer === 'y' || answer === 'yes';
338
+ }
339
+ finally {
340
+ readline.close();
341
+ }
342
+ }
343
+ function assertSuccessful(result) {
344
+ if (result.exitCode === 0)
345
+ return;
346
+ throw new Error(result.diagnostics
347
+ .map((diagnostic) => `${diagnostic.code}: ${diagnostic.message}`)
348
+ .join('\n'));
349
+ }
350
+ function createValidationCallback(tree, project, changedFiles, eslintBaseline) {
351
+ const root = tree.root;
352
+ const hasNx = tree.exists('nx.json');
353
+ const buildConfiguration = project.configuration.targets?.['build']
354
+ ?.configurations?.['development']
355
+ ? 'development'
356
+ : undefined;
357
+ return async () => {
358
+ const validationDiagnostics = await validateRouteChangedFiles(root, resolve(root, project.configuration.root), resolve(root, project.tsConfig), changedFiles, eslintBaseline, { skipTypeCheck: true });
359
+ if (validationDiagnostics.length > 0) {
360
+ throw new Error(validationDiagnostics
361
+ .map((diagnostic) => diagnostic.message)
362
+ .join('\n'));
363
+ }
364
+ const runner = findLocalBinary(root, hasNx ? 'nx' : 'ng');
365
+ if (!runner) {
366
+ throw new Error(`Could not find the local ${hasNx ? 'Nx' : 'Angular'} CLI.`);
367
+ }
368
+ const args = hasNx
369
+ ? [
370
+ 'run',
371
+ `${project.name}:build`,
372
+ ...(buildConfiguration
373
+ ? [`--configuration=${buildConfiguration}`]
374
+ : []),
375
+ ]
376
+ : [
377
+ 'build',
378
+ project.name,
379
+ ...(buildConfiguration
380
+ ? [`--configuration=${buildConfiguration}`]
381
+ : []),
382
+ ];
383
+ await execFileAsync(runner, args, {
384
+ cwd: root,
385
+ maxBuffer: 20 * 1024 * 1024,
386
+ });
387
+ };
388
+ }
389
+ function findLocalBinary(rootDir, name) {
390
+ let current = rootDir;
391
+ while (true) {
392
+ const candidate = join(current, 'node_modules', '.bin', name);
393
+ if (existsSync(candidate))
394
+ return candidate;
395
+ const parent = resolve(current, '..');
396
+ if (parent === current)
397
+ return undefined;
398
+ current = parent;
399
+ }
400
+ }
401
+ export default routeGenerator;
402
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../libs/dev-tools/src/generators/route/generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$id": "CraftRoute",
4
+ "title": "Add a CraftTS route",
5
+ "type": "object",
6
+ "properties": {
7
+ "path": {
8
+ "type": "string",
9
+ "description": "Absolute route path to add.",
10
+ "$default": { "$source": "argv", "index": 0 },
11
+ "x-prompt": "Route path:"
12
+ },
13
+ "project": {
14
+ "type": "string",
15
+ "description": "Angular application project.",
16
+ "x-dropdown": "projects"
17
+ },
18
+ "parent": {
19
+ "type": "string",
20
+ "description": "Parent routes file and optional collection name."
21
+ },
22
+ "component": {
23
+ "type": "string",
24
+ "description": "Existing component as file#Class."
25
+ },
26
+ "createComponent": {
27
+ "type": "string",
28
+ "description": "Create an Angular component using workspace conventions."
29
+ },
30
+ "featureFile": {
31
+ "type": "string",
32
+ "description": "Explicit lazy feature routes file."
33
+ },
34
+ "redirectTo": {
35
+ "type": "string",
36
+ "description": "Static redirect target."
37
+ },
38
+ "skipValidation": {
39
+ "type": "boolean",
40
+ "default": false,
41
+ "description": "Skip post-write ESLint and Angular diagnostics."
42
+ },
43
+ "yes": {
44
+ "type": "boolean",
45
+ "default": false,
46
+ "description": "Apply the generated plan without asking for confirmation."
47
+ }
48
+ },
49
+ "required": ["path"]
50
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$id": "CraftRouteSplit",
4
+ "title": "Split CraftTS routes into a lazy collection",
5
+ "type": "object",
6
+ "properties": {
7
+ "project": {
8
+ "type": "string",
9
+ "description": "Angular application project.",
10
+ "$default": { "$source": "projectName" },
11
+ "x-dropdown": "projects"
12
+ },
13
+ "parent": { "type": "string" },
14
+ "prefix": { "type": "string" },
15
+ "target": { "type": "string" },
16
+ "skipValidation": { "type": "boolean", "default": false }
17
+ },
18
+ "required": ["parent", "prefix", "target"]
19
+ }
package/src/index.d.ts ADDED
@@ -0,0 +1,21 @@
1
+ export * from './scripts/angular-brand-codemod.js';
2
+ export * from './scripts/primitives/migrate-primitives.js';
3
+ export * from './scripts/primitives/migrate-named-primitives.js';
4
+ export * from './scripts/primitives/migrate-primitive-generators.js';
5
+ export * from './scripts/primitives/migrate-yieldable-reactive-reads.js';
6
+ export * from './scripts/migrate.js';
7
+ export * from './scripts/primitives/migration-diagnostic.js';
8
+ export * from './scripts/routes/migrate-routes.js';
9
+ export * from './scripts/routes/migration-diagnostic.js';
10
+ export * from './scripts/routes/route-command.js';
11
+ export * from './scripts/routes/verify-routes.js';
12
+ export * from './scripts/services/config.js';
13
+ export * from './scripts/services/migrate-services.js';
14
+ export * from './scripts/services/migration-diagnostic.js';
15
+ export * from './scripts/components/migrate-components.js';
16
+ export * from './scripts/components/migration-diagnostic.js';
17
+ export * from './scripts/architecture/migrate-architecture.js';
18
+ export * from './scripts/dependency-graph.js';
19
+ export * from './scripts/architecture-graph.js';
20
+ export * from './scripts/create/create-project.js';
21
+ export * from './template-migration.js';
package/src/index.js ADDED
@@ -0,0 +1,23 @@
1
+ // Export programmatic API for codemod
2
+ export * from './scripts/angular-brand-codemod.js';
3
+ export * from './scripts/primitives/migrate-primitives.js';
4
+ export * from './scripts/primitives/migrate-named-primitives.js';
5
+ export * from './scripts/primitives/migrate-primitive-generators.js';
6
+ export * from './scripts/primitives/migrate-yieldable-reactive-reads.js';
7
+ export * from './scripts/migrate.js';
8
+ export * from './scripts/primitives/migration-diagnostic.js';
9
+ export * from './scripts/routes/migrate-routes.js';
10
+ export * from './scripts/routes/migration-diagnostic.js';
11
+ export * from './scripts/routes/route-command.js';
12
+ export * from './scripts/routes/verify-routes.js';
13
+ export * from './scripts/services/config.js';
14
+ export * from './scripts/services/migrate-services.js';
15
+ export * from './scripts/services/migration-diagnostic.js';
16
+ export * from './scripts/components/migrate-components.js';
17
+ export * from './scripts/components/migration-diagnostic.js';
18
+ export * from './scripts/architecture/migrate-architecture.js';
19
+ export * from './scripts/dependency-graph.js';
20
+ export * from './scripts/architecture-graph.js';
21
+ export * from './scripts/create/create-project.js';
22
+ export * from './template-migration.js';
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/dev-tools/src/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,cAAc,oCAAoC,CAAC;AACnD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,kDAAkD,CAAC;AACjE,cAAc,sDAAsD,CAAC;AACrE,cAAc,0DAA0D,CAAC;AACzE,cAAc,sBAAsB,CAAC;AACrC,cAAc,8CAA8C,CAAC;AAC7D,cAAc,oCAAoC,CAAC;AACnD,cAAc,0CAA0C,CAAC;AACzD,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wCAAwC,CAAC;AACvD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,yBAAyB,CAAC"}