@behavioral-contracts/verify-cli 1.0.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 (80) hide show
  1. package/LICENSE +119 -0
  2. package/README.md +694 -0
  3. package/dist/analyze-results.js +253 -0
  4. package/dist/analyzer.d.ts +366 -0
  5. package/dist/analyzer.d.ts.map +1 -0
  6. package/dist/analyzer.js +2592 -0
  7. package/dist/analyzer.js.map +1 -0
  8. package/dist/analyzers/async-error-analyzer.d.ts +72 -0
  9. package/dist/analyzers/async-error-analyzer.d.ts.map +1 -0
  10. package/dist/analyzers/async-error-analyzer.js +243 -0
  11. package/dist/analyzers/async-error-analyzer.js.map +1 -0
  12. package/dist/analyzers/event-listener-analyzer.d.ts +102 -0
  13. package/dist/analyzers/event-listener-analyzer.d.ts.map +1 -0
  14. package/dist/analyzers/event-listener-analyzer.js +253 -0
  15. package/dist/analyzers/event-listener-analyzer.js.map +1 -0
  16. package/dist/analyzers/react-query-analyzer.d.ts +66 -0
  17. package/dist/analyzers/react-query-analyzer.d.ts.map +1 -0
  18. package/dist/analyzers/react-query-analyzer.js +341 -0
  19. package/dist/analyzers/react-query-analyzer.js.map +1 -0
  20. package/dist/analyzers/return-value-analyzer.d.ts +61 -0
  21. package/dist/analyzers/return-value-analyzer.d.ts.map +1 -0
  22. package/dist/analyzers/return-value-analyzer.js +225 -0
  23. package/dist/analyzers/return-value-analyzer.js.map +1 -0
  24. package/dist/code-snippet.d.ts +48 -0
  25. package/dist/code-snippet.d.ts.map +1 -0
  26. package/dist/code-snippet.js +84 -0
  27. package/dist/code-snippet.js.map +1 -0
  28. package/dist/corpus-loader.d.ts +33 -0
  29. package/dist/corpus-loader.d.ts.map +1 -0
  30. package/dist/corpus-loader.js +155 -0
  31. package/dist/corpus-loader.js.map +1 -0
  32. package/dist/fixture-tester.d.ts +28 -0
  33. package/dist/fixture-tester.d.ts.map +1 -0
  34. package/dist/fixture-tester.js +176 -0
  35. package/dist/fixture-tester.js.map +1 -0
  36. package/dist/index.d.ts +6 -0
  37. package/dist/index.d.ts.map +1 -0
  38. package/dist/index.js +375 -0
  39. package/dist/index.js.map +1 -0
  40. package/dist/package-discovery.d.ts +62 -0
  41. package/dist/package-discovery.d.ts.map +1 -0
  42. package/dist/package-discovery.js +299 -0
  43. package/dist/package-discovery.js.map +1 -0
  44. package/dist/reporter.d.ts +43 -0
  45. package/dist/reporter.d.ts.map +1 -0
  46. package/dist/reporter.js +347 -0
  47. package/dist/reporter.js.map +1 -0
  48. package/dist/reporters/benchmarking.d.ts +70 -0
  49. package/dist/reporters/benchmarking.d.ts.map +1 -0
  50. package/dist/reporters/benchmarking.js +191 -0
  51. package/dist/reporters/benchmarking.js.map +1 -0
  52. package/dist/reporters/d3-visualizer.d.ts +40 -0
  53. package/dist/reporters/d3-visualizer.d.ts.map +1 -0
  54. package/dist/reporters/d3-visualizer.js +803 -0
  55. package/dist/reporters/d3-visualizer.js.map +1 -0
  56. package/dist/reporters/health-score.d.ts +33 -0
  57. package/dist/reporters/health-score.d.ts.map +1 -0
  58. package/dist/reporters/health-score.js +149 -0
  59. package/dist/reporters/health-score.js.map +1 -0
  60. package/dist/reporters/index.d.ts +11 -0
  61. package/dist/reporters/index.d.ts.map +1 -0
  62. package/dist/reporters/index.js +11 -0
  63. package/dist/reporters/index.js.map +1 -0
  64. package/dist/reporters/package-breakdown.d.ts +48 -0
  65. package/dist/reporters/package-breakdown.d.ts.map +1 -0
  66. package/dist/reporters/package-breakdown.js +185 -0
  67. package/dist/reporters/package-breakdown.js.map +1 -0
  68. package/dist/reporters/positive-evidence.d.ts +42 -0
  69. package/dist/reporters/positive-evidence.d.ts.map +1 -0
  70. package/dist/reporters/positive-evidence.js +436 -0
  71. package/dist/reporters/positive-evidence.js.map +1 -0
  72. package/dist/tsconfig-generator.d.ts +17 -0
  73. package/dist/tsconfig-generator.d.ts.map +1 -0
  74. package/dist/tsconfig-generator.js +107 -0
  75. package/dist/tsconfig-generator.js.map +1 -0
  76. package/dist/types.d.ts +298 -0
  77. package/dist/types.d.ts.map +1 -0
  78. package/dist/types.js +5 -0
  79. package/dist/types.js.map +1 -0
  80. package/package.json +59 -0
package/LICENSE ADDED
@@ -0,0 +1,119 @@
1
+ GNU AFFERO GENERAL PUBLIC LICENSE
2
+ Version 3, 19 November 2007
3
+
4
+ Copyright (C) 2026 Behavioral Contracts Contributors
5
+
6
+ This program is free software: you can redistribute it and/or modify
7
+ it under the terms of the GNU Affero General Public License as published by
8
+ the Free Software Foundation, either version 3 of the License, or
9
+ (at your option) any later version.
10
+
11
+ This program is distributed in the hope that it will be useful,
12
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ GNU Affero General Public License for more details.
15
+
16
+ You should have received a copy of the GNU Affero General Public License
17
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
18
+
19
+ Full license text: https://www.gnu.org/licenses/agpl-3.0.txt
20
+
21
+ ---
22
+
23
+ ADDITIONAL PERMISSIONS (AGPL Section 7):
24
+
25
+ None currently granted. If you need different licensing terms, contact us.
26
+
27
+ ---
28
+
29
+ WHY AGPL-3.0?
30
+
31
+ This license keeps the analyzer open while protecting against proprietary SaaS competitors:
32
+
33
+ ✅ Anyone can use locally (free forever)
34
+ ✅ Anyone can self-host (free forever)
35
+ ✅ Anyone can modify and redistribute (open source)
36
+ ✅ Companies can integrate into CI/CD (free forever)
37
+ ❌ If you offer this as a SaaS, you MUST open source your modifications
38
+
39
+ KEY POINT: The AGPL "network use" clause means if you run this as a web service (SaaS),
40
+ you must provide the source code to your users.
41
+
42
+ This prevents vendors from taking our work, adding proprietary features, and offering
43
+ closed SaaS - which is exactly what happened to Redis (they used BSD license and lost
44
+ to AWS ElastiCache).
45
+
46
+ ---
47
+
48
+ DUAL LICENSING NOTE:
49
+
50
+ As the copyright holders, Behavioral Contracts can offer this software under alternative
51
+ commercial licenses for organizations that cannot comply with AGPL-3.0.
52
+
53
+ For commercial licensing inquiries, contact: [Your contact email]
54
+
55
+ ---
56
+
57
+ WHAT THIS MEANS FOR YOU:
58
+
59
+ Individual Developers:
60
+ ✅ Use freely in your projects
61
+ ✅ No restrictions for local use
62
+ ✅ Contribute improvements back (open source)
63
+
64
+ Companies (Internal Use):
65
+ ✅ Run in your CI/CD pipelines
66
+ ✅ Self-host for your organization
67
+ ✅ Modify for internal use
68
+ ✅ No cost, no restrictions
69
+
70
+ Companies (SaaS Providers):
71
+ ✅ You can build SaaS using this tool
72
+ ❌ But you must open source your SaaS code (AGPL requirement)
73
+ ⚠️ Or contact us for commercial licensing
74
+
75
+ Examples:
76
+ - Running in GitHub Actions: ✅ Fine (not SaaS)
77
+ - Self-hosting for your team: ✅ Fine (internal use)
78
+ - Building public SaaS like "ContractCheckr.com": ❌ Must open source OR get commercial license
79
+ - Integrating into closed-source IDE: ❌ Must open source IDE OR get commercial license
80
+
81
+ ---
82
+
83
+ WHY NOT MIT OR APACHE?
84
+
85
+ MIT/Apache would allow competitors to:
86
+ 1. Fork our code
87
+ 2. Add proprietary features
88
+ 3. Offer closed SaaS
89
+ 4. Never contribute back
90
+
91
+ AGPL prevents this while keeping the tool free for everyone except those building
92
+ competing SaaS products.
93
+
94
+ We chose AGPL because:
95
+ - Proven by GitLab ($15B valuation, AGPL)
96
+ - Proven by Sentry ($3B valuation, similar model)
97
+ - Protects open source from cloud providers
98
+ - Encourages community contributions
99
+ - Ensures improvements flow back
100
+
101
+ ---
102
+
103
+ COMPARISON TO OTHER LICENSES:
104
+
105
+ MIT (too permissive):
106
+ ❌ Allows proprietary SaaS
107
+ ❌ No obligation to contribute back
108
+ Result: AWS takes your work, makes money, contributes nothing
109
+
110
+ GPL v3 (better, but not enough):
111
+ ✅ Requires source sharing
112
+ ❌ Doesn't cover network use (SaaS loophole)
113
+ Result: SaaS providers can still close it off
114
+
115
+ AGPL v3 (what we chose):
116
+ ✅ Requires source sharing
117
+ ✅ Covers network use (closes SaaS loophole)
118
+ ✅ Forces SaaS providers to open source
119
+ Result: Everyone benefits from improvements