@webpieces/code-rules 0.0.1 → 0.2.114

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 (63) hide show
  1. package/package.json +4 -3
  2. package/src/cli.d.ts +1 -0
  3. package/src/cli.js +19 -0
  4. package/src/cli.js.map +1 -0
  5. package/src/diff-utils.d.ts +24 -0
  6. package/src/{diff-utils.ts → diff-utils.js} +30 -38
  7. package/src/diff-utils.js.map +1 -0
  8. package/src/from-shared-config.d.ts +28 -0
  9. package/src/from-shared-config.js +119 -0
  10. package/src/from-shared-config.js.map +1 -0
  11. package/src/index.js +33 -0
  12. package/src/index.js.map +1 -0
  13. package/src/validate-catch-error-pattern.d.ts +47 -0
  14. package/src/{validate-catch-error-pattern.ts → validate-catch-error-pattern.js} +74 -195
  15. package/src/validate-catch-error-pattern.js.map +1 -0
  16. package/src/validate-code.d.ts +98 -0
  17. package/src/{validate-code.ts → validate-code.js} +65 -259
  18. package/src/validate-code.js.map +1 -0
  19. package/src/validate-dtos.d.ts +41 -0
  20. package/src/{validate-dtos.ts → validate-dtos.js} +88 -215
  21. package/src/validate-dtos.js.map +1 -0
  22. package/src/validate-modified-files.d.ts +24 -0
  23. package/src/{validate-modified-files.ts → validate-modified-files.js} +46 -115
  24. package/src/validate-modified-files.js.map +1 -0
  25. package/src/validate-modified-methods.d.ts +30 -0
  26. package/src/{validate-modified-methods.ts → validate-modified-methods.js} +94 -196
  27. package/src/validate-modified-methods.js.map +1 -0
  28. package/src/validate-new-methods.d.ts +27 -0
  29. package/src/{validate-new-methods.ts → validate-new-methods.js} +63 -133
  30. package/src/validate-new-methods.js.map +1 -0
  31. package/src/validate-no-any-unknown.d.ts +41 -0
  32. package/src/{validate-no-any-unknown.ts → validate-no-any-unknown.js} +69 -146
  33. package/src/validate-no-any-unknown.js.map +1 -0
  34. package/src/validate-no-destructure.d.ts +51 -0
  35. package/src/{validate-no-destructure.ts → validate-no-destructure.js} +80 -166
  36. package/src/validate-no-destructure.js.map +1 -0
  37. package/src/validate-no-direct-api-resolver.d.ts +46 -0
  38. package/src/{validate-no-direct-api-resolver.ts → validate-no-direct-api-resolver.js} +112 -211
  39. package/src/validate-no-direct-api-resolver.js.map +1 -0
  40. package/src/validate-no-implicit-any.d.ts +36 -0
  41. package/src/{validate-no-implicit-any.ts → validate-no-implicit-any.js} +94 -141
  42. package/src/validate-no-implicit-any.js.map +1 -0
  43. package/src/validate-no-inline-types.d.ts +90 -0
  44. package/src/{validate-no-inline-types.ts → validate-no-inline-types.js} +93 -198
  45. package/src/validate-no-inline-types.js.map +1 -0
  46. package/src/validate-no-unmanaged-exceptions.d.ts +43 -0
  47. package/src/{validate-no-unmanaged-exceptions.ts → validate-no-unmanaged-exceptions.js} +71 -140
  48. package/src/validate-no-unmanaged-exceptions.js.map +1 -0
  49. package/src/validate-prisma-converters.d.ts +59 -0
  50. package/src/{validate-prisma-converters.ts → validate-prisma-converters.js} +120 -307
  51. package/src/validate-prisma-converters.js.map +1 -0
  52. package/src/validate-return-types.d.ts +28 -0
  53. package/src/{validate-return-types.ts → validate-return-types.js} +84 -168
  54. package/src/validate-return-types.js.map +1 -0
  55. package/LICENSE +0 -373
  56. package/jest.config.ts +0 -20
  57. package/project.json +0 -22
  58. package/src/cli.ts +0 -17
  59. package/src/from-shared-config.ts +0 -118
  60. package/tsconfig.json +0 -22
  61. package/tsconfig.lib.json +0 -10
  62. package/tsconfig.spec.json +0 -14
  63. /package/src/{index.ts → index.d.ts} +0 -0
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Validate No Direct API in Resolver Executor
3
+ *
4
+ * Validates two Angular anti-patterns using LINE-BASED detection:
5
+ *
6
+ * ============================================================================
7
+ * VIOLATIONS (BAD) - These patterns are flagged:
8
+ * ============================================================================
9
+ *
10
+ * 1. In *.routes.ts files: inject(XxxApi) — resolvers should inject services, not APIs directly
11
+ * 2. In *.component.ts files: this.<field>.snapshot.data — components should subscribe to
12
+ * service BehaviorSubjects, not read route snapshot data
13
+ *
14
+ * ============================================================================
15
+ * CORRECT PATTERNS (GOOD)
16
+ * ============================================================================
17
+ *
18
+ * 1. In resolvers: inject(XxxService) which calls the API internally
19
+ * 2. In components: this.myService.someObservable$ (subscribe to service BehaviorSubjects)
20
+ *
21
+ * ============================================================================
22
+ * MODES (LINE-BASED)
23
+ * ============================================================================
24
+ * - OFF: Skip validation entirely
25
+ * - MODIFIED_CODE: Flag violations on changed lines (lines in diff hunks)
26
+ * - NEW_AND_MODIFIED_METHODS: Flag violations in new/modified method/route scopes
27
+ * - MODIFIED_FILES: Flag ALL violations in files that were modified
28
+ *
29
+ * ============================================================================
30
+ * ESCAPE HATCH
31
+ * ============================================================================
32
+ * Add comment above the violation:
33
+ * // webpieces-disable no-direct-api-resolver -- [your justification]
34
+ * const myApi = inject(MyApi);
35
+ */
36
+ export type NoDirectApiResolverMode = 'OFF' | 'MODIFIED_CODE' | 'NEW_AND_MODIFIED_METHODS' | 'MODIFIED_FILES';
37
+ export interface ValidateNoDirectApiResolverOptions {
38
+ mode?: NoDirectApiResolverMode;
39
+ disableAllowed?: boolean;
40
+ ignoreModifiedUntilEpoch?: number;
41
+ enforcePaths?: string[];
42
+ }
43
+ export interface ExecutorResult {
44
+ success: boolean;
45
+ }
46
+ export default function runValidator(options: ValidateNoDirectApiResolverOptions, workspaceRoot: string): Promise<ExecutorResult>;