@azure-net/cli 5.1.1 → 6.0.0-next.3

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 (180) hide show
  1. package/README.md +201 -0
  2. package/bin/azure-net.js +236 -221
  3. package/dist/bin/azure-net.d.ts +2 -0
  4. package/dist/src/checks/architecture.d.ts +20 -0
  5. package/dist/src/checks/checkDomain.d.ts +1 -0
  6. package/dist/src/checks/checkFoldersStructure.d.ts +1 -0
  7. package/dist/src/checks/checkHooks.d.ts +1 -0
  8. package/dist/src/checks/checkImports.d.ts +1 -0
  9. package/dist/src/checks/checkInternal.d.ts +1 -0
  10. package/dist/src/checks/checkLayerBoundaries.d.ts +1 -0
  11. package/dist/src/checks/checkLayerImports.d.ts +1 -0
  12. package/dist/src/checks/checkPresenterNames.d.ts +1 -0
  13. package/dist/src/checks/checkProject.d.ts +1 -0
  14. package/dist/src/checks/checkProviderGraph.d.ts +1 -0
  15. package/dist/src/checks/checkProviderNames.d.ts +1 -0
  16. package/dist/src/generate/layers/generateRepository.d.ts +1 -0
  17. package/dist/src/generate/layers/generateRepositoryMethod.d.ts +1 -0
  18. package/dist/src/generate/layers/generateUseCases.d.ts +1 -0
  19. package/dist/src/generate/module/generateDomain.d.ts +8 -0
  20. package/dist/src/generate/module/generateModule.d.ts +1 -0
  21. package/dist/src/generate/module/generateModulePreset.d.ts +1 -0
  22. package/dist/src/generate/module/generatePresenter.d.ts +29 -0
  23. package/dist/src/generate/module/generateRepository.d.ts +15 -0
  24. package/dist/src/generate/module/generateRepositoryMethod.d.ts +2 -0
  25. package/dist/src/generate/module/generateSchemaFromType.d.ts +9 -0
  26. package/dist/src/generate/module/generateStore.d.ts +1 -0
  27. package/dist/src/generate/module/generateTypesJson.d.ts +2 -0
  28. package/dist/src/generate/module/generateUseCases.d.ts +1 -0
  29. package/dist/src/generate/module/repositoryModuleShared.d.ts +89 -0
  30. package/dist/src/generate/routes/generateRoutes.d.ts +14 -0
  31. package/dist/src/generate/ui/generateComponent.d.ts +1 -0
  32. package/dist/src/generate/ui/generateDesignComponent.d.ts +1 -0
  33. package/dist/src/generate/ui/generateWidget.d.ts +1 -0
  34. package/dist/src/git/commit.d.ts +23 -0
  35. package/dist/src/git/push.d.ts +11 -0
  36. package/dist/src/git/runGit.d.ts +2 -0
  37. package/dist/src/init/initAliases.d.ts +12 -0
  38. package/dist/src/init/initEdges.d.ts +2 -0
  39. package/dist/src/init/initStructure.d.ts +1 -0
  40. package/dist/src/install/configureCommitTools.d.ts +1 -0
  41. package/dist/src/install/installFresh.d.ts +1 -0
  42. package/dist/src/migrate/migrate.d.ts +22 -0
  43. package/dist/src/migrate/presenterFactories.d.ts +9 -0
  44. package/dist/src/migrate/presenters.d.ts +13 -0
  45. package/dist/src/migrate/translations.d.ts +8 -0
  46. package/dist/src/plugins/addLint.d.ts +5 -0
  47. package/dist/src/scaffolds/createCoreSchema.d.ts +1 -0
  48. package/dist/src/scaffolds/createDatasource.d.ts +1 -0
  49. package/dist/src/scaffolds/createProgram.d.ts +1 -0
  50. package/dist/src/scaffolds/createResponse.d.ts +1 -0
  51. package/dist/src/scaffolds/createSchemaRule.d.ts +1 -0
  52. package/dist/src/scaffolds/createTranslationManager.d.ts +1 -0
  53. package/{src/scaffolds/index.ts → dist/src/scaffolds/index.d.ts} +0 -2
  54. package/dist/src/scaffolds/registerDatasource.d.ts +2 -0
  55. package/dist/src/scaffolds/updateDefaultFactoryConfig.d.ts +1 -0
  56. package/dist/src/utils/architecture.d.ts +31 -0
  57. package/dist/src/utils/contextUtils.d.ts +6 -0
  58. package/dist/src/utils/fileUtils.d.ts +5 -0
  59. package/dist/src/utils/flattenConfig.d.ts +2 -0
  60. package/dist/src/utils/legacyAliases.d.ts +1 -0
  61. package/dist/src/utils/loadConfig.d.ts +16 -0
  62. package/dist/src/utils/packageImports.d.ts +4 -0
  63. package/dist/src/utils/sharedFoundation.d.ts +20 -0
  64. package/dist/src/utils/viteConfig.d.ts +9 -0
  65. package/package.json +17 -7
  66. package/src/checks/architecture.js +154 -0
  67. package/src/checks/checkDomain.js +124 -154
  68. package/src/checks/checkFoldersStructure.js +64 -52
  69. package/src/checks/checkHooks.js +12 -12
  70. package/src/checks/checkImports.js +26 -142
  71. package/src/checks/checkInternal.js +27 -24
  72. package/src/checks/checkLayerBoundaries.js +22 -197
  73. package/src/checks/checkLayerImports.js +14 -134
  74. package/src/checks/checkPresenterNames.js +156 -143
  75. package/src/checks/checkProject.js +27 -26
  76. package/src/checks/checkProviderGraph.js +182 -166
  77. package/src/checks/checkProviderNames.js +123 -112
  78. package/src/generate/layers/generateRepository.js +1 -109
  79. package/src/generate/layers/generateRepositoryMethod.js +1 -90
  80. package/src/generate/layers/generateUseCases.js +1 -44
  81. package/src/generate/module/generateDomain.js +81 -105
  82. package/src/generate/module/generateModule.js +34 -68
  83. package/src/generate/module/generateModulePreset.js +188 -248
  84. package/src/generate/module/generatePresenter.js +441 -369
  85. package/src/generate/module/generateRepository.js +102 -121
  86. package/src/generate/module/generateRepositoryMethod.js +117 -0
  87. package/src/generate/module/generateSchemaFromType.js +283 -280
  88. package/src/generate/module/generateStore.js +41 -0
  89. package/src/generate/module/generateTypesJson.js +196 -195
  90. package/src/generate/module/generateUseCases.js +47 -55
  91. package/src/generate/module/repositoryModuleShared.js +480 -459
  92. package/src/generate/routes/generateRoutes.js +4 -7
  93. package/src/generate/ui/generateComponent.js +44 -64
  94. package/src/generate/ui/generateDesignComponent.js +21 -41
  95. package/src/generate/ui/generateWidget.js +21 -41
  96. package/src/git/commit.js +67 -0
  97. package/src/git/push.js +19 -0
  98. package/src/git/runGit.js +11 -0
  99. package/src/init/initAliases.js +19 -135
  100. package/src/init/initEdges.js +79 -54
  101. package/src/init/initStructure.js +31 -145
  102. package/src/install/configureCommitTools.js +1 -0
  103. package/src/install/installFresh.js +39 -68
  104. package/src/migrate/migrate.js +1027 -0
  105. package/src/migrate/presenterFactories.js +189 -0
  106. package/src/migrate/presenters.js +373 -0
  107. package/src/migrate/translations.js +213 -0
  108. package/src/plugins/addLint.js +52 -219
  109. package/src/scaffolds/createCoreSchema.js +65 -91
  110. package/src/scaffolds/createDatasource.js +67 -101
  111. package/src/scaffolds/createProgram.js +8 -8
  112. package/src/scaffolds/createResponse.js +29 -29
  113. package/src/scaffolds/createSchemaRule.js +19 -19
  114. package/src/scaffolds/createTranslationManager.js +84 -37
  115. package/src/scaffolds/index.js +0 -2
  116. package/src/scaffolds/registerDatasource.js +59 -0
  117. package/src/scaffolds/updateDefaultFactoryConfig.js +31 -0
  118. package/src/utils/architecture.js +145 -0
  119. package/src/utils/contextUtils.js +32 -65
  120. package/src/utils/fileUtils.js +69 -50
  121. package/src/utils/flattenConfig.js +38 -0
  122. package/src/utils/legacyAliases.js +75 -0
  123. package/src/utils/loadConfig.js +76 -40
  124. package/src/utils/packageImports.js +63 -0
  125. package/src/utils/sharedFoundation.js +36 -42
  126. package/src/utils/viteConfig.js +295 -0
  127. package/.prettierrc +0 -7
  128. package/bin/azure-net.ts +0 -308
  129. package/eslint.config.js +0 -34
  130. package/src/checks/checkDomain.ts +0 -223
  131. package/src/checks/checkFoldersStructure.ts +0 -85
  132. package/src/checks/checkHooks.ts +0 -22
  133. package/src/checks/checkImports.ts +0 -193
  134. package/src/checks/checkInternal.ts +0 -48
  135. package/src/checks/checkLayerBoundaries.ts +0 -255
  136. package/src/checks/checkLayerImports.ts +0 -185
  137. package/src/checks/checkPresenterNames.ts +0 -203
  138. package/src/checks/checkProject.ts +0 -45
  139. package/src/checks/checkProviderGraph.ts +0 -234
  140. package/src/checks/checkProviderNames.ts +0 -165
  141. package/src/generate/layers/generateRepository.ts +0 -123
  142. package/src/generate/layers/generateRepositoryMethod.ts +0 -102
  143. package/src/generate/layers/generateUseCases.ts +0 -50
  144. package/src/generate/layers/repositoryShared.js +0 -506
  145. package/src/generate/layers/repositoryShared.ts +0 -662
  146. package/src/generate/module/generateDomain.ts +0 -147
  147. package/src/generate/module/generateModule.ts +0 -84
  148. package/src/generate/module/generateModulePreset.ts +0 -338
  149. package/src/generate/module/generatePresenter.ts +0 -498
  150. package/src/generate/module/generateRepository.ts +0 -158
  151. package/src/generate/module/generateSchemaFromType.ts +0 -368
  152. package/src/generate/module/generateTypesJson.ts +0 -259
  153. package/src/generate/module/generateUseCases.ts +0 -67
  154. package/src/generate/module/repositoryModuleShared.ts +0 -669
  155. package/src/generate/routes/generateRoutes.ts +0 -275
  156. package/src/generate/ui/generateComponent.ts +0 -100
  157. package/src/generate/ui/generateDesignComponent.ts +0 -71
  158. package/src/generate/ui/generateWidget.ts +0 -71
  159. package/src/init/initAliases.ts +0 -172
  160. package/src/init/initEdges.ts +0 -74
  161. package/src/init/initStructure.ts +0 -172
  162. package/src/install/installFresh.ts +0 -93
  163. package/src/plugins/addLint.ts +0 -274
  164. package/src/scaffolds/createCoreSchema.ts +0 -130
  165. package/src/scaffolds/createDatasource.ts +0 -161
  166. package/src/scaffolds/createDatasourceProvider.js +0 -127
  167. package/src/scaffolds/createDatasourceProvider.ts +0 -161
  168. package/src/scaffolds/createPresenterFactory.js +0 -83
  169. package/src/scaffolds/createPresenterFactory.ts +0 -102
  170. package/src/scaffolds/createProgram.ts +0 -19
  171. package/src/scaffolds/createResponse.ts +0 -66
  172. package/src/scaffolds/createSchemaRule.ts +0 -44
  173. package/src/scaffolds/createTranslationManager.ts +0 -80
  174. package/src/utils/contextUtils.ts +0 -88
  175. package/src/utils/fileUtils.ts +0 -74
  176. package/src/utils/loadConfig.ts +0 -68
  177. package/src/utils/sharedFoundation.ts +0 -70
  178. package/tsconfig.json +0 -19
  179. /package/{src/checks/index.ts → dist/src/checks/index.d.ts} +0 -0
  180. /package/{src/plugins/index.ts → dist/src/plugins/index.d.ts} +0 -0
package/bin/azure-net.js CHANGED
@@ -1,266 +1,281 @@
1
1
  #!/usr/bin/env node
2
2
  import { Command } from 'commander';
3
+ import { readFileSync } from 'node:fs';
4
+ import commit from '../src/git/commit.js';
5
+ import push from '../src/git/push.js';
3
6
  import { addLint } from '../src/plugins/index.js';
4
7
  const program = new Command();
5
- program.name('azure-net').description('Azure-Net CLI generator').version('4.1.0');
8
+ program
9
+ .name('azure-net')
10
+ .description('Azure-Net CLI generator')
11
+ .version(JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf8')).version);
12
+ program
13
+ .command('commit')
14
+ .description('Interactively commit staged changes')
15
+ .action(() => commit());
16
+ program
17
+ .command('push')
18
+ .description('Check, stage, commit and push')
19
+ .option('--no-check', 'Skip all project checks')
20
+ .action((options) => push(options));
21
+ program
22
+ .command('migrate')
23
+ .description('Migrate the legacy application tree with backups and a report')
24
+ .option('--dry-run', 'Show the plan without writing files')
25
+ .option('-y, --yes', 'Apply the migration without confirmation')
26
+ .action(async (options) => {
27
+ await (await import('../src/migrate/migrate.js')).default(options);
28
+ });
6
29
  const addCommand = program.command('add').description('Add project integrations and plugins');
7
30
  const createCommand = program.command('create').description('Create project boilerplate artifacts');
8
31
  const initCommand = program.command('init').description('Initialize project scaffolding');
9
32
  const installCommand = program.command('install').description('Install project presets and flows');
10
33
  const generateCommand = program.command('generate').description('Generate UI artifacts');
11
34
  const checkCommand = program.command('check').description('Run project checks');
12
- addCommand
13
- .command('commit-tools')
14
- .description('Setup linting and commit tools')
15
- .option('-m, --manager <manager>', 'Package manager: bun | pnpm | npm | yarn')
16
- .action(addLint);
17
- createCommand
18
- .command('schema-factory')
19
- .description('Create base schema in shared essentials foundation constructs')
20
- .action(async () => {
21
- const handler = (await import('../src/scaffolds/createCoreSchema.js')).default;
22
- await handler();
23
- });
24
- createCommand
25
- .command('translation-manager')
26
- .description('Create translation manager in shared essentials localization')
27
- .action(async () => {
28
- const handler = (await import('../src/scaffolds/createTranslationManager.js')).default;
29
- await handler();
30
- });
35
+ addCommand.command('commit-tools').description('Replace Prettier configuration without installing packages').action(addLint);
31
36
  createCommand
32
- .command('presenter-factory')
33
- .description('Create presenter factory in shared essentials foundation constructs')
34
- .action(async () => {
35
- const handler = (await import('../src/scaffolds/createPresenterFactory.js')).default;
36
- await handler();
37
- });
37
+ .command('schema-factory')
38
+ .description('Create base schema in Platform/Foundation')
39
+ .action(async () => {
40
+ const handler = (await import('../src/scaffolds/createCoreSchema.js')).default;
41
+ await handler();
42
+ });
38
43
  createCommand
39
- .command('schema-rule')
40
- .description('Create schema rule in shared essentials foundation constructs')
41
- .action(async () => {
42
- const handler = (await import('../src/scaffolds/createSchemaRule.js')).default;
43
- await handler();
44
- });
44
+ .command('translation-manager')
45
+ .description('Create translation manager in Platform/Bootstrap/Localization')
46
+ .action(async () => {
47
+ const handler = (await import('../src/scaffolds/createTranslationManager.js')).default;
48
+ await handler();
49
+ });
45
50
  createCommand
46
- .command('response')
47
- .description('Create response in shared essentials foundation constructs')
48
- .action(async () => {
49
- const handler = (await import('../src/scaffolds/createResponse.js')).default;
50
- await handler();
51
- });
51
+ .command('schema-rule')
52
+ .description('Create schema rule in Platform/Foundation')
53
+ .action(async () => {
54
+ const handler = (await import('../src/scaffolds/createSchemaRule.js')).default;
55
+ await handler();
56
+ });
52
57
  createCommand
53
- .command('datasource')
54
- .description('Create datasource in core or context infrastructure')
55
- .action(async () => {
56
- const handler = (await import('../src/scaffolds/createDatasource.js')).default;
57
- await handler();
58
- });
58
+ .command('response')
59
+ .description('Create response in Platform/Foundation')
60
+ .action(async () => {
61
+ const handler = (await import('../src/scaffolds/createResponse.js')).default;
62
+ await handler();
63
+ });
59
64
  createCommand
60
- .command('datasource-provider')
61
- .description('Create datasource provider in core or context infrastructure')
62
- .action(async () => {
63
- const handler = (await import('../src/scaffolds/createDatasourceProvider.js')).default;
64
- await handler();
65
- });
65
+ .command('datasource')
66
+ .description('Create datasource in Platform/Foundation')
67
+ .action(async () => {
68
+ const handler = (await import('../src/scaffolds/createDatasource.js')).default;
69
+ await handler();
70
+ });
66
71
  initCommand
67
- .command('edges')
68
- .description('Initialize edges plugin in vite config')
69
- .action(async () => {
70
- const handler = (await import('../src/init/initEdges.js')).default;
71
- await handler();
72
- });
72
+ .command('edges')
73
+ .description('Configure AzureNetPlugin in Vite (legacy command name)')
74
+ .action(async () => {
75
+ const handler = (await import('../src/init/initEdges.js')).default;
76
+ await handler();
77
+ });
73
78
  initCommand
74
- .command('folders-structure')
75
- .description('Generate base folders structure')
76
- .action(async () => {
77
- const handler = (await import('../src/init/initStructure.js')).default;
78
- await handler();
79
- });
79
+ .command('folders-structure')
80
+ .description('Generate base folders structure')
81
+ .action(async () => {
82
+ const handler = (await import('../src/init/initStructure.js')).default;
83
+ await handler();
84
+ });
80
85
  initCommand.action(async () => {
81
- const initStructure = (await import('../src/init/initStructure.js')).default;
82
- await initStructure();
86
+ const initStructure = (await import('../src/init/initStructure.js')).default;
87
+ await initStructure();
83
88
  });
84
89
  installCommand
85
- .command('fresh')
86
- .description('Run full fresh install flow (structure + optional generators)')
87
- .action(async () => {
88
- const handler = (await import('../src/install/installFresh.js')).default;
89
- await handler();
90
- });
90
+ .command('fresh')
91
+ .description('Run full fresh install flow (structure + optional generators)')
92
+ .action(async () => {
93
+ const handler = (await import('../src/install/installFresh.js')).default;
94
+ await handler();
95
+ });
91
96
  generateCommand
92
- .command('component')
93
- .description('Generate UI component')
94
- .action(async () => {
95
- const handler = (await import('../src/generate/ui/generateComponent.js')).default;
96
- await handler();
97
- });
97
+ .command('component')
98
+ .description('Generate UI component')
99
+ .action(async () => {
100
+ const handler = (await import('../src/generate/ui/generateComponent.js')).default;
101
+ await handler();
102
+ });
98
103
  generateCommand
99
- .command('widget')
100
- .description('Generate UI widget')
101
- .action(async () => {
102
- const handler = (await import('../src/generate/ui/generateWidget.js')).default;
103
- await handler();
104
- });
104
+ .command('widget')
105
+ .description('Generate UI widget')
106
+ .action(async () => {
107
+ const handler = (await import('../src/generate/ui/generateWidget.js')).default;
108
+ await handler();
109
+ });
105
110
  generateCommand
106
- .command('design-component')
107
- .description('Generate UI design component')
108
- .action(async () => {
109
- const handler = (await import('../src/generate/ui/generateDesignComponent.js')).default;
110
- await handler();
111
- });
111
+ .command('design-component')
112
+ .description('Generate UI design component')
113
+ .action(async () => {
114
+ const handler = (await import('../src/generate/ui/generateDesignComponent.js')).default;
115
+ await handler();
116
+ });
112
117
  generateCommand
113
- .command('repository')
114
- .description('Generate infrastructure repository')
115
- .action(async () => {
116
- const handler = (await import('../src/generate/layers/generateRepository.js')).default;
117
- await handler();
118
- });
118
+ .command('repository')
119
+ .description('Generate infrastructure repository')
120
+ .action(async () => {
121
+ const handler = (await import('../src/generate/layers/generateRepository.js')).default;
122
+ await handler();
123
+ });
119
124
  generateCommand
120
- .command('repo')
121
- .description('Generate infrastructure repository (module flow)')
122
- .action(async () => {
123
- const handler = (await import('../src/generate/module/generateRepository.js')).default;
124
- await handler();
125
- });
125
+ .command('repo')
126
+ .description('Generate infrastructure repository (module flow)')
127
+ .action(async () => {
128
+ const handler = (await import('../src/generate/module/generateRepository.js')).default;
129
+ await handler();
130
+ });
126
131
  generateCommand
127
- .command('repository-method')
128
- .description('Generate method for an existing repository')
129
- .action(async () => {
130
- const handler = (await import('../src/generate/layers/generateRepositoryMethod.js')).default;
131
- await handler();
132
- });
132
+ .command('repository-method')
133
+ .description('Generate method for an existing repository')
134
+ .action(async () => {
135
+ const handler = (await import('../src/generate/layers/generateRepositoryMethod.js')).default;
136
+ await handler();
137
+ });
133
138
  generateCommand
134
- .command('use-cases')
135
- .description('Generate use-cases for an existing repository')
136
- .action(async () => {
137
- const handler = (await import('../src/generate/module/generateUseCases.js')).default;
138
- await handler();
139
- });
139
+ .command('use-cases')
140
+ .description('Generate use-cases for an existing repository')
141
+ .action(async () => {
142
+ const handler = (await import('../src/generate/module/generateUseCases.js')).default;
143
+ await handler();
144
+ });
140
145
  generateCommand
141
- .command('domain')
142
- .description('Generate domain module (model/ports)')
143
- .action(async () => {
144
- const handler = (await import('../src/generate/module/generateDomain.js')).default;
145
- await handler();
146
- });
146
+ .command('domain')
147
+ .description('Generate domain types (Entities/Ports)')
148
+ .action(async () => {
149
+ const handler = (await import('../src/generate/module/generateDomain.js')).default;
150
+ await handler();
151
+ });
147
152
  generateCommand
148
- .command('presenter')
149
- .description('Generate presentation layer presenter from UseCases')
150
- .action(async () => {
151
- const handler = (await import('../src/generate/module/generatePresenter.js')).default;
152
- await handler();
153
- });
153
+ .command('store')
154
+ .description('Generate a request-isolated reactive class with a browser singleton')
155
+ .action(async () => {
156
+ const handler = (await import('../src/generate/module/generateStore.js')).default;
157
+ await handler();
158
+ });
154
159
  generateCommand
155
- .command('types-json')
156
- .description('Fill model interface keys from JSON')
157
- .action(async () => {
158
- const handler = (await import('../src/generate/module/generateTypesJson.js')).default;
159
- await handler();
160
- });
160
+ .command('presenter')
161
+ .description('Generate presentation layer presenter from UseCases')
162
+ .action(async () => {
163
+ const handler = (await import('../src/generate/module/generatePresenter.js')).default;
164
+ await handler();
165
+ });
161
166
  generateCommand
162
- .command('schema-from-type')
163
- .description('Fill schema rules keys from schema generic type')
164
- .action(async () => {
165
- const handler = (await import('../src/generate/module/generateSchemaFromType.js')).default;
166
- await handler();
167
- });
167
+ .command('types-json')
168
+ .description('Fill model interface keys from JSON')
169
+ .action(async () => {
170
+ const handler = (await import('../src/generate/module/generateTypesJson.js')).default;
171
+ await handler();
172
+ });
168
173
  generateCommand
169
- .command('module')
170
- .description('Generate domain + repository + presenter flow')
171
- .action(async () => {
172
- const handler = (await import('../src/generate/module/generateModule.js')).default;
173
- await handler();
174
- });
174
+ .command('schema-from-type')
175
+ .description('Fill schema rules keys from schema generic type')
176
+ .action(async () => {
177
+ const handler = (await import('../src/generate/module/generateSchemaFromType.js')).default;
178
+ await handler();
179
+ });
180
+ generateCommand
181
+ .command('module')
182
+ .description('Generate domain + repository + presenter flow')
183
+ .action(async () => {
184
+ const handler = (await import('../src/generate/module/generateModule.js')).default;
185
+ await handler();
186
+ });
175
187
  generateCommand
176
- .command('module-preset')
177
- .description('Generate preset CRUD-like module flow')
178
- .action(async () => {
179
- const handler = (await import('../src/generate/module/generateModulePreset.js')).default;
180
- await handler();
181
- });
188
+ .command('module-preset')
189
+ .description('Generate preset CRUD-like module flow')
190
+ .action(async () => {
191
+ const handler = (await import('../src/generate/module/generateModulePreset.js')).default;
192
+ await handler();
193
+ });
182
194
  generateCommand
183
- .command('routes')
184
- .description('Generate typed SvelteKit routes list')
185
- .action(async () => {
186
- const handler = (await import('../src/generate/routes/generateRoutes.js')).default;
187
- await handler();
188
- });
195
+ .command('routes')
196
+ .description('Generate typed SvelteKit routes list')
197
+ .action(async () => {
198
+ const handler = (await import('../src/generate/routes/generateRoutes.js')).default;
199
+ await handler();
200
+ });
189
201
  checkCommand
190
- .command('presenter-names')
191
- .description('Check duplicate presenter names in src')
192
- .action(async () => {
193
- const handler = (await import('../src/checks/checkPresenterNames.js')).default;
194
- await handler();
195
- });
202
+ .command('presenter-names')
203
+ .description('Check duplicate presenter names in src')
204
+ .action(async () => {
205
+ const handler = (await import('../src/checks/checkPresenterNames.js')).default;
206
+ await handler();
207
+ });
196
208
  checkCommand
197
- .command('provider-names')
198
- .description('Check duplicate provider names in src')
199
- .action(async () => {
200
- const handler = (await import('../src/checks/checkProviderNames.js')).default;
201
- await handler();
202
- });
209
+ .command('provider-names')
210
+ .description('Check duplicate provider names in src')
211
+ .action(async () => {
212
+ const handler = (await import('../src/checks/checkProviderNames.js')).default;
213
+ await handler();
214
+ });
203
215
  checkCommand
204
- .command('provider-graph')
205
- .description('Check provider dependency graph for cycles')
206
- .action(async () => {
207
- const handler = (await import('../src/checks/checkProviderGraph.js')).default;
208
- await handler();
209
- });
216
+ .command('provider-graph')
217
+ .description('Check provider dependency graph for cycles')
218
+ .action(async () => {
219
+ const handler = (await import('../src/checks/checkProviderGraph.js')).default;
220
+ await handler();
221
+ });
210
222
  checkCommand
211
- .command('domain')
212
- .description('Check domain naming and structure rules in all contexts')
213
- .action(async () => {
214
- const handler = (await import('../src/checks/checkDomain.js')).default;
215
- await handler();
216
- });
223
+ .command('domain')
224
+ .description('Check domain naming and structure rules in all contexts')
225
+ .action(async () => {
226
+ const handler = (await import('../src/checks/checkDomain.js')).default;
227
+ await handler();
228
+ });
217
229
  checkCommand
218
- .command('imports')
219
- .description('Check import extensions and import group order in src')
220
- .action(async () => {
221
- const handler = (await import('../src/checks/checkImports.js')).default;
222
- await handler();
223
- });
230
+ .command('imports')
231
+ .description('Check import extensions and import group order in src')
232
+ .action(async () => {
233
+ const handler = (await import('../src/checks/checkImports.js')).default;
234
+ await handler();
235
+ });
224
236
  checkCommand
225
- .command('hooks')
226
- .description('Check that manual SvelteKit hooks are not present')
227
- .action(async () => {
228
- const handler = (await import('../src/checks/checkHooks.js')).default;
229
- await handler();
230
- });
237
+ .command('hooks')
238
+ .description('Check that manual SvelteKit hooks are not present')
239
+ .action(async () => {
240
+ const handler = (await import('../src/checks/checkHooks.js')).default;
241
+ await handler();
242
+ });
231
243
  checkCommand
232
- .command('layer-imports')
233
- .description('Check forbidden imports between layers inside each context')
234
- .action(async () => {
235
- const handler = (await import('../src/checks/checkLayerImports.js')).default;
236
- await handler();
237
- });
244
+ .command('layer-imports')
245
+ .description('Check forbidden imports between layers inside each context')
246
+ .action(async () => {
247
+ const handler = (await import('../src/checks/checkLayerImports.js')).default;
248
+ await handler();
249
+ });
238
250
  checkCommand
239
- .command('layer-boundaries')
240
- .description('Check layer boundaries between contexts by aliases')
241
- .action(async () => {
242
- const handler = (await import('../src/checks/checkLayerBoundaries.js')).default;
243
- await handler();
244
- });
251
+ .command('layer-boundaries')
252
+ .description('Check layer boundaries between contexts by aliases')
253
+ .action(async () => {
254
+ const handler = (await import('../src/checks/checkLayerBoundaries.js')).default;
255
+ await handler();
256
+ });
245
257
  checkCommand
246
- .command('folders-structure')
247
- .description('Check allowed folders structure in context layers/ui/components')
248
- .action(async () => {
249
- const handler = (await import('../src/checks/checkFoldersStructure.js')).default;
250
- await handler();
251
- });
258
+ .command('folders-structure')
259
+ .description('Check allowed folders structure in context layers/ui/components')
260
+ .action(async () => {
261
+ const handler = (await import('../src/checks/checkFoldersStructure.js')).default;
262
+ await handler();
263
+ });
252
264
  checkCommand
253
- .command('internal')
254
- .description('Run all internal azure-net checks')
255
- .action(async () => {
256
- const handler = (await import('../src/checks/checkInternal.js')).default;
257
- await handler();
258
- });
265
+ .command('internal')
266
+ .description('Run all internal azure-net checks')
267
+ .action(async () => {
268
+ const handler = (await import('../src/checks/checkInternal.js')).default;
269
+ await handler();
270
+ });
259
271
  checkCommand
260
- .command('project')
261
- .description('Run full project checks: format, internal, lint, typecheck')
262
- .action(async () => {
263
- const handler = (await import('../src/checks/checkProject.js')).default;
264
- await handler();
265
- });
266
- program.parse();
272
+ .command('project')
273
+ .description('Run full project checks: format, internal, lint, typecheck')
274
+ .action(async () => {
275
+ const handler = (await import('../src/checks/checkProject.js')).default;
276
+ await handler();
277
+ });
278
+ program.parseAsync().catch((error) => {
279
+ console.error(error instanceof Error ? error.message : String(error));
280
+ process.exitCode = 1;
281
+ });
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,20 @@
1
+ import ts from 'typescript';
2
+ export type Issue = {
3
+ file: string;
4
+ line: number;
5
+ message: string;
6
+ };
7
+ export declare const appRoot: () => string;
8
+ export declare const directories: (root: string) => Promise<string[]>;
9
+ export declare function sourceFiles(root: string): Promise<string[]>;
10
+ export declare function parseSource(content: string, filename?: string): ts.SourceFile;
11
+ export declare function dependencies(content: string, filename?: string): Array<{
12
+ source: string;
13
+ line: number;
14
+ kind: string;
15
+ }>;
16
+ export declare function exportOnly(content: string): boolean;
17
+ export declare function importResolver(): Promise<(file: string, source: string) => string | null>;
18
+ export declare function location(file: string): string[];
19
+ export declare function report(label: string, issues: Issue[]): void;
20
+ export declare function checkDependencies(label: string, rule: (source: string[], target: string[]) => string | null): Promise<void>;
@@ -0,0 +1 @@
1
+ export default function checkDomain(): Promise<void>;
@@ -0,0 +1 @@
1
+ export default function checkFoldersStructure(): Promise<void>;
@@ -0,0 +1 @@
1
+ export default function checkHooks(): Promise<void>;
@@ -0,0 +1 @@
1
+ export default function checkImports(): Promise<void>;
@@ -0,0 +1 @@
1
+ export default function checkInternal(): Promise<void>;
@@ -0,0 +1 @@
1
+ export default function checkLayerBoundaries(): Promise<void>;
@@ -0,0 +1 @@
1
+ export default function checkLayerImports(): Promise<void>;
@@ -0,0 +1 @@
1
+ export default function checkPresenterNames(): Promise<void>;
@@ -0,0 +1 @@
1
+ export default function checkProject(): Promise<void>;
@@ -0,0 +1 @@
1
+ export default function checkProviderGraph(): Promise<void>;
@@ -0,0 +1 @@
1
+ export default function checkProviderNames(): Promise<void>;
@@ -0,0 +1 @@
1
+ export { default } from '../module/generateRepository.js';
@@ -0,0 +1 @@
1
+ export { default } from '../module/generateRepositoryMethod.js';
@@ -0,0 +1 @@
1
+ export { default } from '../module/generateUseCases.js';
@@ -0,0 +1,8 @@
1
+ export default function generateDomain(options?: {
2
+ contextName?: string;
3
+ entityName?: string;
4
+ }): Promise<{
5
+ contextName: string;
6
+ domainName: string;
7
+ domainPath: string;
8
+ } | null>;
@@ -0,0 +1 @@
1
+ export default function generateModule(): Promise<void>;
@@ -0,0 +1 @@
1
+ export default function generateModulePreset(): Promise<void>;
@@ -0,0 +1,29 @@
1
+ type MethodParam = {
2
+ name: string;
3
+ type: string;
4
+ };
5
+ type RepositoryMethod = {
6
+ name: string;
7
+ params: MethodParam[];
8
+ responseType: string;
9
+ };
10
+ type UseCasesInfo = {
11
+ repositoryInterfaceName: string | null;
12
+ domainName: string | null;
13
+ methods: string[];
14
+ };
15
+ type ProviderInfo = {
16
+ providerName: string;
17
+ services: Map<string, string>;
18
+ };
19
+ export declare const parseProviderInfo: (content: string) => ProviderInfo;
20
+ export declare const parseUseCasesInfo: (content: string) => UseCasesInfo;
21
+ export declare const parseRepositoryInterfaceMethods: (content: string, interfaceName?: string) => RepositoryMethod[];
22
+ export declare const parseRepositoryHttpMethods: (content: string) => Map<string, string>;
23
+ export declare const normalizeTypeImports: (types: string[]) => string[];
24
+ type GeneratePresenterOptions = {
25
+ contextName?: string;
26
+ useCasesName?: string;
27
+ };
28
+ export default function generatePresenter(options?: GeneratePresenterOptions): Promise<void>;
29
+ export {};
@@ -0,0 +1,15 @@
1
+ type GenerateRepositoryOptions = {
2
+ contextName?: string;
3
+ domainName?: string;
4
+ forceCreateUseCases?: boolean;
5
+ };
6
+ type GenerateRepositoryResult = {
7
+ contextName: string;
8
+ domainName: string;
9
+ repositoryName: string;
10
+ useCasesName: string;
11
+ useCasesCreated: boolean;
12
+ datasourceName: string;
13
+ };
14
+ export default function generateRepository(options?: GenerateRepositoryOptions): Promise<GenerateRepositoryResult | null>;
15
+ export {};
@@ -0,0 +1,2 @@
1
+ export declare function addTypeImports(content: string, generated: string): string;
2
+ export default function generateRepositoryMethod(): Promise<void>;