@currentjs/gen 0.3.1 → 0.5.0

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 (69) hide show
  1. package/CHANGELOG.md +8 -289
  2. package/README.md +623 -427
  3. package/dist/cli.js +2 -1
  4. package/dist/commands/commit.js +25 -42
  5. package/dist/commands/createApp.js +1 -0
  6. package/dist/commands/createModule.js +151 -45
  7. package/dist/commands/diff.js +27 -40
  8. package/dist/commands/generateAll.js +141 -291
  9. package/dist/commands/migrateCommit.js +6 -18
  10. package/dist/commands/migratePush.d.ts +1 -0
  11. package/dist/commands/migratePush.js +135 -0
  12. package/dist/commands/migrateUpdate.d.ts +1 -0
  13. package/dist/commands/migrateUpdate.js +147 -0
  14. package/dist/commands/newGenerateAll.d.ts +4 -0
  15. package/dist/commands/newGenerateAll.js +336 -0
  16. package/dist/generators/controllerGenerator.d.ts +43 -19
  17. package/dist/generators/controllerGenerator.js +547 -329
  18. package/dist/generators/domainLayerGenerator.d.ts +21 -0
  19. package/dist/generators/domainLayerGenerator.js +276 -0
  20. package/dist/generators/dtoGenerator.d.ts +21 -0
  21. package/dist/generators/dtoGenerator.js +518 -0
  22. package/dist/generators/newControllerGenerator.d.ts +55 -0
  23. package/dist/generators/newControllerGenerator.js +644 -0
  24. package/dist/generators/newServiceGenerator.d.ts +19 -0
  25. package/dist/generators/newServiceGenerator.js +266 -0
  26. package/dist/generators/newStoreGenerator.d.ts +39 -0
  27. package/dist/generators/newStoreGenerator.js +408 -0
  28. package/dist/generators/newTemplateGenerator.d.ts +29 -0
  29. package/dist/generators/newTemplateGenerator.js +510 -0
  30. package/dist/generators/serviceGenerator.d.ts +16 -51
  31. package/dist/generators/serviceGenerator.js +167 -586
  32. package/dist/generators/storeGenerator.d.ts +35 -32
  33. package/dist/generators/storeGenerator.js +291 -238
  34. package/dist/generators/storeGeneratorV2.d.ts +31 -0
  35. package/dist/generators/storeGeneratorV2.js +190 -0
  36. package/dist/generators/templateGenerator.d.ts +21 -21
  37. package/dist/generators/templateGenerator.js +393 -268
  38. package/dist/generators/templates/appTemplates.d.ts +3 -1
  39. package/dist/generators/templates/appTemplates.js +15 -10
  40. package/dist/generators/templates/data/appYamlTemplate +5 -2
  41. package/dist/generators/templates/data/cursorRulesTemplate +315 -221
  42. package/dist/generators/templates/data/frontendScriptTemplate +76 -47
  43. package/dist/generators/templates/data/mainViewTemplate +1 -1
  44. package/dist/generators/templates/data/systemTsTemplate +5 -0
  45. package/dist/generators/templates/index.d.ts +0 -3
  46. package/dist/generators/templates/index.js +0 -3
  47. package/dist/generators/templates/newStoreTemplates.d.ts +5 -0
  48. package/dist/generators/templates/newStoreTemplates.js +141 -0
  49. package/dist/generators/templates/storeTemplates.d.ts +1 -5
  50. package/dist/generators/templates/storeTemplates.js +102 -219
  51. package/dist/generators/templates/viewTemplates.js +1 -1
  52. package/dist/generators/useCaseGenerator.d.ts +13 -0
  53. package/dist/generators/useCaseGenerator.js +188 -0
  54. package/dist/types/configTypes.d.ts +148 -0
  55. package/dist/types/configTypes.js +10 -0
  56. package/dist/utils/childEntityUtils.d.ts +18 -0
  57. package/dist/utils/childEntityUtils.js +78 -0
  58. package/dist/utils/commandUtils.d.ts +43 -0
  59. package/dist/utils/commandUtils.js +124 -0
  60. package/dist/utils/commitUtils.d.ts +4 -1
  61. package/dist/utils/constants.d.ts +10 -0
  62. package/dist/utils/constants.js +13 -1
  63. package/dist/utils/diResolver.d.ts +32 -0
  64. package/dist/utils/diResolver.js +204 -0
  65. package/dist/utils/new_parts_of_migrationUtils.d.ts +0 -0
  66. package/dist/utils/new_parts_of_migrationUtils.js +164 -0
  67. package/dist/utils/typeUtils.d.ts +19 -0
  68. package/dist/utils/typeUtils.js +70 -0
  69. package/package.json +7 -3
@@ -1,29 +1,53 @@
1
+ import { ModuleConfig } from '../types/configTypes';
1
2
  export declare class ControllerGenerator {
2
- private hasPermissions;
3
- private getActionPermissions;
4
- private shouldGenerateMethod;
5
- private needsUserParam;
6
- private getHttpMethodName;
7
3
  private getHttpDecorator;
8
- private getMethodCallParams;
9
- private generateParameterExtractions;
10
- private generateMethodImplementation;
11
- private replaceTemplateVars;
12
- private generateControllerMethod;
13
- private getWebMethodName;
14
- private getPathSuffix;
15
- private getReturnType;
4
+ private parseUseCase;
16
5
  /**
17
- * Generate controller for a single config (api or routes)
6
+ * Normalize auth config to an array of roles
18
7
  */
19
- private generateControllerForModelWithConfig;
8
+ private normalizeAuth;
20
9
  /**
21
- * Generate controller for a model (handles both single config and array) - Option D
10
+ * Check if auth config includes owner permission
22
11
  */
23
- private generateControllerForModel;
24
- private generateController;
12
+ private hasOwnerAuth;
13
+ /**
14
+ * Generate pre-fetch authentication/authorization check code.
15
+ * This runs before fetching the entity and validates authentication and role-based access.
16
+ * @param auth - The auth requirement: 'all', 'authenticated', 'owner', role names, or array of roles
17
+ * @returns Code string for the auth check, or empty string if no check needed
18
+ */
19
+ private generateAuthCheck;
20
+ /**
21
+ * Generate post-fetch authorization check for owner validation.
22
+ * This runs after fetching the entity and validates ownership.
23
+ * Used for READ operations (get, list) where we check after fetch.
24
+ * For child entities, uses getResourceOwner() since result has no ownerId.
25
+ */
26
+ private generatePostFetchOwnerCheck;
27
+ /**
28
+ * Generate pre-mutation authorization check for owner validation.
29
+ * This runs BEFORE the mutation to prevent unauthorized changes.
30
+ * Used for WRITE operations (update, delete).
31
+ * @param auth - The auth requirement
32
+ * @param useCaseVar - The use case variable name
33
+ * @returns Code string for the pre-mutation owner check, or empty string if not needed
34
+ */
35
+ private generatePreMutationOwnerCheck;
36
+ private generateApiEndpointMethod;
37
+ private generateWebPageMethod;
38
+ private generateOnSuccessHandler;
39
+ private generateOnErrorHandler;
40
+ /**
41
+ * Sort routes so static paths are registered before parameterized ones.
42
+ * This prevents parameterized routes (e.g. /:id) from catching requests
43
+ * meant for static routes (e.g. /create).
44
+ */
45
+ private sortRoutesBySpecificity;
46
+ private generateApiController;
47
+ private generateWebController;
48
+ generateFromConfig(config: ModuleConfig): Record<string, string>;
25
49
  generateFromYamlFile(yamlFilePath: string): Record<string, string>;
26
- generateAndSaveFiles(yamlFilePath?: string, outputDir?: string, opts?: {
50
+ generateAndSaveFiles(yamlFilePath: string, moduleDir: string, opts?: {
27
51
  force?: boolean;
28
52
  skipOnConflict?: boolean;
29
53
  }): Promise<string[]>;