@contractspec/example.saas-boilerplate 0.0.0-canary-20260113170453

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 (226) hide show
  1. package/.turbo/turbo-build$colon$bundle.log +188 -0
  2. package/.turbo/turbo-build.log +189 -0
  3. package/CHANGELOG.md +440 -0
  4. package/LICENSE +21 -0
  5. package/README.md +155 -0
  6. package/dist/billing/billing.entity.d.ts +61 -0
  7. package/dist/billing/billing.entity.d.ts.map +1 -0
  8. package/dist/billing/billing.entity.js +122 -0
  9. package/dist/billing/billing.entity.js.map +1 -0
  10. package/dist/billing/billing.enum.d.ts +16 -0
  11. package/dist/billing/billing.enum.d.ts.map +1 -0
  12. package/dist/billing/billing.enum.js +27 -0
  13. package/dist/billing/billing.enum.js.map +1 -0
  14. package/dist/billing/billing.event.d.ts +86 -0
  15. package/dist/billing/billing.event.d.ts.map +1 -0
  16. package/dist/billing/billing.event.js +153 -0
  17. package/dist/billing/billing.event.js.map +1 -0
  18. package/dist/billing/billing.handler.d.ts +82 -0
  19. package/dist/billing/billing.handler.d.ts.map +1 -0
  20. package/dist/billing/billing.handler.js +58 -0
  21. package/dist/billing/billing.handler.js.map +1 -0
  22. package/dist/billing/billing.operations.d.ts +166 -0
  23. package/dist/billing/billing.operations.d.ts.map +1 -0
  24. package/dist/billing/billing.operations.js +181 -0
  25. package/dist/billing/billing.operations.js.map +1 -0
  26. package/dist/billing/billing.presentation.d.ts +14 -0
  27. package/dist/billing/billing.presentation.d.ts.map +1 -0
  28. package/dist/billing/billing.presentation.js +59 -0
  29. package/dist/billing/billing.presentation.js.map +1 -0
  30. package/dist/billing/billing.schema.d.ts +201 -0
  31. package/dist/billing/billing.schema.d.ts.map +1 -0
  32. package/dist/billing/billing.schema.js +214 -0
  33. package/dist/billing/billing.schema.js.map +1 -0
  34. package/dist/billing/index.d.ts +8 -0
  35. package/dist/billing/index.js +9 -0
  36. package/dist/dashboard/dashboard.presentation.d.ts +14 -0
  37. package/dist/dashboard/dashboard.presentation.d.ts.map +1 -0
  38. package/dist/dashboard/dashboard.presentation.js +55 -0
  39. package/dist/dashboard/dashboard.presentation.js.map +1 -0
  40. package/dist/dashboard/index.d.ts +2 -0
  41. package/dist/dashboard/index.js +3 -0
  42. package/dist/docs/index.d.ts +1 -0
  43. package/dist/docs/index.js +1 -0
  44. package/dist/docs/saas-boilerplate.docblock.d.ts +1 -0
  45. package/dist/docs/saas-boilerplate.docblock.js +100 -0
  46. package/dist/docs/saas-boilerplate.docblock.js.map +1 -0
  47. package/dist/example.d.ts +7 -0
  48. package/dist/example.d.ts.map +1 -0
  49. package/dist/example.js +53 -0
  50. package/dist/example.js.map +1 -0
  51. package/dist/handlers/index.d.ts +4 -0
  52. package/dist/handlers/index.js +5 -0
  53. package/dist/handlers/saas.handlers.d.ts +68 -0
  54. package/dist/handlers/saas.handlers.d.ts.map +1 -0
  55. package/dist/handlers/saas.handlers.js +148 -0
  56. package/dist/handlers/saas.handlers.js.map +1 -0
  57. package/dist/index.d.ts +54 -0
  58. package/dist/index.d.ts.map +1 -0
  59. package/dist/index.js +81 -0
  60. package/dist/index.js.map +1 -0
  61. package/dist/presentations/index.d.ts +17 -0
  62. package/dist/presentations/index.d.ts.map +1 -0
  63. package/dist/presentations/index.js +17 -0
  64. package/dist/presentations/index.js.map +1 -0
  65. package/dist/project/index.d.ts +8 -0
  66. package/dist/project/index.js +9 -0
  67. package/dist/project/project.entity.d.ts +40 -0
  68. package/dist/project/project.entity.d.ts.map +1 -0
  69. package/dist/project/project.entity.js +85 -0
  70. package/dist/project/project.entity.js.map +1 -0
  71. package/dist/project/project.enum.d.ts +16 -0
  72. package/dist/project/project.enum.d.ts.map +1 -0
  73. package/dist/project/project.enum.js +26 -0
  74. package/dist/project/project.enum.js.map +1 -0
  75. package/dist/project/project.event.d.ts +92 -0
  76. package/dist/project/project.event.d.ts.map +1 -0
  77. package/dist/project/project.event.js +165 -0
  78. package/dist/project/project.event.js.map +1 -0
  79. package/dist/project/project.handler.d.ts +72 -0
  80. package/dist/project/project.handler.d.ts.map +1 -0
  81. package/dist/project/project.handler.js +82 -0
  82. package/dist/project/project.handler.js.map +1 -0
  83. package/dist/project/project.operations.d.ts +419 -0
  84. package/dist/project/project.operations.d.ts.map +1 -0
  85. package/dist/project/project.operations.js +260 -0
  86. package/dist/project/project.operations.js.map +1 -0
  87. package/dist/project/project.presentation.d.ts +14 -0
  88. package/dist/project/project.presentation.d.ts.map +1 -0
  89. package/dist/project/project.presentation.js +65 -0
  90. package/dist/project/project.presentation.js.map +1 -0
  91. package/dist/project/project.schema.d.ts +235 -0
  92. package/dist/project/project.schema.d.ts.map +1 -0
  93. package/dist/project/project.schema.js +215 -0
  94. package/dist/project/project.schema.js.map +1 -0
  95. package/dist/saas-boilerplate.feature.d.ts +12 -0
  96. package/dist/saas-boilerplate.feature.d.ts.map +1 -0
  97. package/dist/saas-boilerplate.feature.js +208 -0
  98. package/dist/saas-boilerplate.feature.js.map +1 -0
  99. package/dist/seeders/index.d.ts +10 -0
  100. package/dist/seeders/index.d.ts.map +1 -0
  101. package/dist/seeders/index.js +19 -0
  102. package/dist/seeders/index.js.map +1 -0
  103. package/dist/settings/index.d.ts +3 -0
  104. package/dist/settings/index.js +4 -0
  105. package/dist/settings/settings.entity.d.ts +37 -0
  106. package/dist/settings/settings.entity.d.ts.map +1 -0
  107. package/dist/settings/settings.entity.js +78 -0
  108. package/dist/settings/settings.entity.js.map +1 -0
  109. package/dist/settings/settings.enum.d.ts +10 -0
  110. package/dist/settings/settings.enum.d.ts.map +1 -0
  111. package/dist/settings/settings.enum.js +21 -0
  112. package/dist/settings/settings.enum.js.map +1 -0
  113. package/dist/shared/mock-data.d.ts +86 -0
  114. package/dist/shared/mock-data.d.ts.map +1 -0
  115. package/dist/shared/mock-data.js +138 -0
  116. package/dist/shared/mock-data.js.map +1 -0
  117. package/dist/shared/overlay-types.d.ts +34 -0
  118. package/dist/shared/overlay-types.d.ts.map +1 -0
  119. package/dist/shared/overlay-types.js +0 -0
  120. package/dist/tests/operations.test-spec.d.ts +10 -0
  121. package/dist/tests/operations.test-spec.d.ts.map +1 -0
  122. package/dist/tests/operations.test-spec.js +123 -0
  123. package/dist/tests/operations.test-spec.js.map +1 -0
  124. package/dist/ui/SaasDashboard.d.ts +7 -0
  125. package/dist/ui/SaasDashboard.d.ts.map +1 -0
  126. package/dist/ui/SaasDashboard.js +298 -0
  127. package/dist/ui/SaasDashboard.js.map +1 -0
  128. package/dist/ui/SaasProjectList.d.ts +14 -0
  129. package/dist/ui/SaasProjectList.d.ts.map +1 -0
  130. package/dist/ui/SaasProjectList.js +76 -0
  131. package/dist/ui/SaasProjectList.js.map +1 -0
  132. package/dist/ui/SaasSettingsPanel.d.ts +7 -0
  133. package/dist/ui/SaasSettingsPanel.d.ts.map +1 -0
  134. package/dist/ui/SaasSettingsPanel.js +138 -0
  135. package/dist/ui/SaasSettingsPanel.js.map +1 -0
  136. package/dist/ui/hooks/index.d.ts +3 -0
  137. package/dist/ui/hooks/index.js +6 -0
  138. package/dist/ui/hooks/useProjectList.d.ts +34 -0
  139. package/dist/ui/hooks/useProjectList.d.ts.map +1 -0
  140. package/dist/ui/hooks/useProjectList.js +75 -0
  141. package/dist/ui/hooks/useProjectList.js.map +1 -0
  142. package/dist/ui/hooks/useProjectMutations.d.ts +28 -0
  143. package/dist/ui/hooks/useProjectMutations.d.ts.map +1 -0
  144. package/dist/ui/hooks/useProjectMutations.js +146 -0
  145. package/dist/ui/hooks/useProjectMutations.js.map +1 -0
  146. package/dist/ui/index.d.ts +14 -0
  147. package/dist/ui/index.js +15 -0
  148. package/dist/ui/modals/CreateProjectModal.d.ts +23 -0
  149. package/dist/ui/modals/CreateProjectModal.d.ts.map +1 -0
  150. package/dist/ui/modals/CreateProjectModal.js +139 -0
  151. package/dist/ui/modals/CreateProjectModal.js.map +1 -0
  152. package/dist/ui/modals/ProjectActionsModal.d.ts +38 -0
  153. package/dist/ui/modals/ProjectActionsModal.d.ts.map +1 -0
  154. package/dist/ui/modals/ProjectActionsModal.js +292 -0
  155. package/dist/ui/modals/ProjectActionsModal.js.map +1 -0
  156. package/dist/ui/modals/index.d.ts +3 -0
  157. package/dist/ui/modals/index.js +4 -0
  158. package/dist/ui/overlays/demo-overlays.d.ts +19 -0
  159. package/dist/ui/overlays/demo-overlays.d.ts.map +1 -0
  160. package/dist/ui/overlays/demo-overlays.js +70 -0
  161. package/dist/ui/overlays/demo-overlays.js.map +1 -0
  162. package/dist/ui/overlays/index.d.ts +2 -0
  163. package/dist/ui/overlays/index.js +3 -0
  164. package/dist/ui/renderers/index.d.ts +3 -0
  165. package/dist/ui/renderers/index.js +4 -0
  166. package/dist/ui/renderers/project-list.markdown.d.ts +31 -0
  167. package/dist/ui/renderers/project-list.markdown.d.ts.map +1 -0
  168. package/dist/ui/renderers/project-list.markdown.js +148 -0
  169. package/dist/ui/renderers/project-list.markdown.js.map +1 -0
  170. package/dist/ui/renderers/project-list.renderer.d.ts +9 -0
  171. package/dist/ui/renderers/project-list.renderer.d.ts.map +1 -0
  172. package/dist/ui/renderers/project-list.renderer.js +17 -0
  173. package/dist/ui/renderers/project-list.renderer.js.map +1 -0
  174. package/example.ts +1 -0
  175. package/package.json +135 -0
  176. package/src/billing/billing.entity.ts +158 -0
  177. package/src/billing/billing.enum.ts +23 -0
  178. package/src/billing/billing.event.ts +108 -0
  179. package/src/billing/billing.handler.ts +137 -0
  180. package/src/billing/billing.operations.ts +187 -0
  181. package/src/billing/billing.presentation.ts +56 -0
  182. package/src/billing/billing.schema.ts +133 -0
  183. package/src/billing/index.ts +64 -0
  184. package/src/dashboard/dashboard.presentation.ts +56 -0
  185. package/src/dashboard/index.ts +8 -0
  186. package/src/docs/index.ts +1 -0
  187. package/src/docs/saas-boilerplate.docblock.ts +98 -0
  188. package/src/example.ts +38 -0
  189. package/src/handlers/index.ts +23 -0
  190. package/src/handlers/saas.handlers.ts +300 -0
  191. package/src/index.ts +76 -0
  192. package/src/presentations/index.ts +36 -0
  193. package/src/project/index.ts +66 -0
  194. package/src/project/project.entity.ts +93 -0
  195. package/src/project/project.enum.ts +22 -0
  196. package/src/project/project.event.ts +128 -0
  197. package/src/project/project.handler.ts +168 -0
  198. package/src/project/project.operations.ts +272 -0
  199. package/src/project/project.presentation.ts +58 -0
  200. package/src/project/project.schema.ts +147 -0
  201. package/src/saas-boilerplate.feature.ts +113 -0
  202. package/src/seeders/index.ts +28 -0
  203. package/src/settings/index.ts +9 -0
  204. package/src/settings/settings.entity.ts +89 -0
  205. package/src/settings/settings.enum.ts +11 -0
  206. package/src/shared/mock-data.ts +110 -0
  207. package/src/shared/overlay-types.ts +39 -0
  208. package/src/tests/operations.test-spec.ts +109 -0
  209. package/src/ui/SaasDashboard.tsx +325 -0
  210. package/src/ui/SaasProjectList.tsx +113 -0
  211. package/src/ui/SaasSettingsPanel.tsx +96 -0
  212. package/src/ui/hooks/index.ts +10 -0
  213. package/src/ui/hooks/useProjectList.ts +95 -0
  214. package/src/ui/hooks/useProjectMutations.ts +166 -0
  215. package/src/ui/index.ts +18 -0
  216. package/src/ui/modals/CreateProjectModal.tsx +176 -0
  217. package/src/ui/modals/ProjectActionsModal.tsx +346 -0
  218. package/src/ui/modals/index.ts +2 -0
  219. package/src/ui/overlays/demo-overlays.ts +74 -0
  220. package/src/ui/overlays/index.ts +1 -0
  221. package/src/ui/renderers/index.ts +7 -0
  222. package/src/ui/renderers/project-list.markdown.ts +239 -0
  223. package/src/ui/renderers/project-list.renderer.tsx +22 -0
  224. package/tsconfig.json +10 -0
  225. package/tsconfig.tsbuildinfo +1 -0
  226. package/tsdown.config.js +7 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,440 @@
1
+ # @contractspec/example.saas-boilerplate
2
+
3
+ ## 0.0.0-canary-20260113170453
4
+
5
+ ### Minor Changes
6
+
7
+ - caf8701: feat: add cli vibe command to run workflow
8
+ - c69b849: feat: add api web services (mcp & website)
9
+ - 42b8d78: feat: add cli `contractspec vibe` workflow to simplify usage
10
+ - fd38e85: feat: auto-fix contractspec issues
11
+
12
+ ### Patch Changes
13
+
14
+ - e7ded36: feat: improve stability (adding ts-morph)
15
+ - c231a8b: test: improve workspace stability
16
+ - Updated dependencies [e7ded36]
17
+ - Updated dependencies [caf8701]
18
+ - Updated dependencies [c69b849]
19
+ - Updated dependencies [c231a8b]
20
+ - Updated dependencies [42b8d78]
21
+ - Updated dependencies [fd38e85]
22
+ - @contractspec/lib.example-shared-ui@0.0.0-canary-20260113170453
23
+ - @contractspec/module.notifications@0.0.0-canary-20260113170453
24
+ - @contractspec/lib.runtime-sandbox@0.0.0-canary-20260113170453
25
+ - @contractspec/module.audit-trail@0.0.0-canary-20260113170453
26
+ - @contractspec/lib.design-system@0.0.0-canary-20260113170453
27
+ - @contractspec/lib.identity-rbac@0.0.0-canary-20260113170453
28
+ - @contractspec/lib.contracts@0.0.0-canary-20260113170453
29
+ - @contractspec/lib.schema@0.0.0-canary-20260113170453
30
+ - @contractspec/lib.jobs@0.0.0-canary-20260113170453
31
+
32
+ ## 1.46.2
33
+
34
+ ### Patch Changes
35
+
36
+ - 7e21625: feat: library services (landing page & api)
37
+ - Updated dependencies [7e21625]
38
+ - @contractspec/lib.example-shared-ui@1.0.1
39
+ - @contractspec/module.notifications@1.46.2
40
+ - @contractspec/lib.runtime-sandbox@0.1.1
41
+ - @contractspec/module.audit-trail@1.46.2
42
+ - @contractspec/lib.design-system@1.46.2
43
+ - @contractspec/lib.identity-rbac@1.46.2
44
+ - @contractspec/lib.contracts@1.46.2
45
+ - @contractspec/lib.schema@1.46.2
46
+ - @contractspec/lib.jobs@1.46.2
47
+
48
+ ## 1.46.1
49
+
50
+ ### Patch Changes
51
+
52
+ - 2d8a72b: fix: mcp for presentation
53
+ - Updated dependencies [2d8a72b]
54
+ - @contractspec/module.notifications@1.46.1
55
+ - @contractspec/module.audit-trail@1.46.1
56
+ - @contractspec/lib.identity-rbac@1.46.1
57
+ - @contractspec/lib.contracts@1.46.1
58
+ - @contractspec/lib.schema@1.46.1
59
+ - @contractspec/lib.jobs@1.46.1
60
+
61
+ ## 1.46.0
62
+
63
+ ### Minor Changes
64
+
65
+ - 07cb19b: feat: feat: cleaude code & opencode integrations
66
+
67
+ ### Patch Changes
68
+
69
+ - Updated dependencies [07cb19b]
70
+ - @contractspec/module.notifications@1.46.0
71
+ - @contractspec/module.audit-trail@1.46.0
72
+ - @contractspec/lib.identity-rbac@1.46.0
73
+ - @contractspec/lib.contracts@1.46.0
74
+ - @contractspec/lib.schema@1.46.0
75
+ - @contractspec/lib.jobs@1.46.0
76
+
77
+ ## 1.45.6
78
+
79
+ ### Patch Changes
80
+
81
+ - a913074: feat: improve ai agents rules management"
82
+ - Updated dependencies [a913074]
83
+ - @contractspec/module.notifications@1.45.6
84
+ - @contractspec/module.audit-trail@1.45.6
85
+ - @contractspec/lib.identity-rbac@1.45.6
86
+ - @contractspec/lib.contracts@1.45.6
87
+ - @contractspec/lib.schema@1.45.6
88
+ - @contractspec/lib.jobs@1.45.6
89
+
90
+ ## 1.45.5
91
+
92
+ ### Patch Changes
93
+
94
+ - 9ddd7fa: feat: improve versioning
95
+ - Updated dependencies [9ddd7fa]
96
+ - @contractspec/module.notifications@1.45.5
97
+ - @contractspec/module.audit-trail@1.45.5
98
+ - @contractspec/lib.identity-rbac@1.45.5
99
+ - @contractspec/lib.contracts@1.45.5
100
+ - @contractspec/lib.schema@1.45.5
101
+ - @contractspec/lib.jobs@1.45.5
102
+
103
+ ## 1.45.4
104
+
105
+ ### Patch Changes
106
+
107
+ - fix: github action
108
+ - Updated dependencies
109
+ - @contractspec/module.notifications@1.45.4
110
+ - @contractspec/module.audit-trail@1.45.4
111
+ - @contractspec/lib.identity-rbac@1.45.4
112
+ - @contractspec/lib.contracts@1.45.4
113
+ - @contractspec/lib.schema@1.45.4
114
+ - @contractspec/lib.jobs@1.45.4
115
+
116
+ ## 1.45.3
117
+
118
+ ### Patch Changes
119
+
120
+ - e74ea9e: feat: version management
121
+ - Updated dependencies [e74ea9e]
122
+ - @contractspec/module.notifications@1.45.3
123
+ - @contractspec/module.audit-trail@1.45.3
124
+ - @contractspec/lib.identity-rbac@1.45.3
125
+ - @contractspec/lib.contracts@1.45.3
126
+ - @contractspec/lib.schema@1.45.3
127
+ - @contractspec/lib.jobs@1.45.3
128
+
129
+ ## 1.45.2
130
+
131
+ ### Patch Changes
132
+
133
+ - 39ca241: code cleaning
134
+ - Updated dependencies [39ca241]
135
+ - @contractspec/lib.contracts@1.45.2
136
+ - @contractspec/lib.schema@1.45.2
137
+
138
+ ## 1.45.1
139
+
140
+ ### Patch Changes
141
+
142
+ - feat: improve app config and examples contracts
143
+ - Updated dependencies
144
+ - @contractspec/module.notifications@1.45.1
145
+ - @contractspec/module.audit-trail@1.45.1
146
+ - @contractspec/lib.identity-rbac@1.45.1
147
+ - @contractspec/lib.contracts@1.45.1
148
+ - @contractspec/lib.schema@1.45.1
149
+ - @contractspec/lib.jobs@1.45.1
150
+ - @contractspec/lib.bus@1.45.1
151
+
152
+ ## 1.45.0
153
+
154
+ ### Minor Changes
155
+
156
+ - e73ca1d: feat: improve app config and examples contracts
157
+ feat: Contract layers support (features, examples, app-configs)
158
+
159
+ ### New CLI Commands
160
+ - `contractspec list layers` - List all contract layers with filtering
161
+
162
+ ### Enhanced Commands
163
+ - `contractspec ci` - New `layers` check category validates features/examples/config
164
+ - `contractspec doctor` - New `layers` health checks
165
+ - `contractspec integrity` - Now shows layer statistics
166
+
167
+ ### New APIs
168
+ - `discoverLayers()` - Scan workspace for all layer files
169
+ - `scanExampleSource()` - Parse ExampleSpec from source code
170
+ - `isExampleFile()` - Check if file is an example spec
171
+
172
+ ### Patch Changes
173
+
174
+ - Updated dependencies [e73ca1d]
175
+ - @contractspec/module.notifications@1.45.0
176
+ - @contractspec/module.audit-trail@1.45.0
177
+ - @contractspec/lib.identity-rbac@1.45.0
178
+ - @contractspec/lib.contracts@1.45.0
179
+ - @contractspec/lib.schema@1.45.0
180
+ - @contractspec/lib.jobs@1.45.0
181
+ - @contractspec/lib.bus@1.45.0
182
+
183
+ ## 1.44.1
184
+
185
+ ### Patch Changes
186
+
187
+ - 3c594fb: fix
188
+ - Updated dependencies [3c594fb]
189
+ - @contractspec/module.notifications@1.44.1
190
+ - @contractspec/module.audit-trail@1.44.1
191
+ - @contractspec/lib.identity-rbac@1.44.1
192
+ - @contractspec/lib.contracts@1.44.1
193
+ - @contractspec/lib.schema@1.44.1
194
+ - @contractspec/lib.jobs@1.44.1
195
+ - @contractspec/lib.bus@1.44.1
196
+
197
+ ## 1.44.0
198
+
199
+ ### Minor Changes
200
+
201
+ - 5f3a868: chore: isolate branding to contractspec.io
202
+
203
+ ### Patch Changes
204
+
205
+ - Updated dependencies [5f3a868]
206
+ - @contractspec/module.notifications@1.44.0
207
+ - @contractspec/module.audit-trail@1.44.0
208
+ - @contractspec/lib.identity-rbac@1.44.0
209
+ - @contractspec/lib.contracts@1.44.0
210
+ - @contractspec/lib.schema@1.44.0
211
+ - @contractspec/lib.jobs@1.44.0
212
+ - @contractspec/lib.bus@1.44.0
213
+
214
+ ## 1.43.4
215
+
216
+ ### Patch Changes
217
+
218
+ - 9216062: fix: cross-platform compatibility
219
+ - Updated dependencies [9216062]
220
+ - @contractspec/module.notifications@1.43.4
221
+ - @contractspec/module.audit-trail@1.43.4
222
+ - @contractspec/lib.identity-rbac@1.43.4
223
+ - @contractspec/lib.contracts@1.43.4
224
+ - @contractspec/lib.schema@1.43.3
225
+ - @contractspec/lib.jobs@1.43.4
226
+ - @contractspec/lib.bus@1.43.4
227
+
228
+ ## 1.43.3
229
+
230
+ ### Patch Changes
231
+
232
+ - 24d9759: improve documentation
233
+ - Updated dependencies [24d9759]
234
+ - @contractspec/module.notifications@1.43.3
235
+ - @contractspec/module.audit-trail@1.43.3
236
+ - @contractspec/lib.identity-rbac@1.43.3
237
+ - @contractspec/lib.contracts@1.43.3
238
+ - @contractspec/lib.schema@1.43.2
239
+ - @contractspec/lib.jobs@1.43.3
240
+ - @contractspec/lib.bus@1.43.3
241
+
242
+ ## 1.43.2
243
+
244
+ ### Patch Changes
245
+
246
+ - e147271: fix: improve stability
247
+ - Updated dependencies [e147271]
248
+ - @contractspec/module.notifications@1.43.2
249
+ - @contractspec/module.audit-trail@1.43.2
250
+ - @contractspec/lib.identity-rbac@1.43.2
251
+ - @contractspec/lib.contracts@1.43.2
252
+ - @contractspec/lib.jobs@1.43.2
253
+ - @contractspec/lib.bus@1.43.2
254
+ - @contractspec/lib.schema@1.43.1
255
+
256
+ ## 1.43.1
257
+
258
+ ### Patch Changes
259
+
260
+ - Updated dependencies [f28fdad]
261
+ - @contractspec/lib.contracts@1.43.1
262
+ - @contractspec/lib.bus@1.43.1
263
+ - @contractspec/lib.identity-rbac@1.43.1
264
+ - @contractspec/lib.jobs@1.43.1
265
+ - @contractspec/module.audit-trail@1.43.1
266
+ - @contractspec/module.notifications@1.43.1
267
+
268
+ ## 1.43.0
269
+
270
+ ### Minor Changes
271
+
272
+ - 042d072: feat: schema declaration using json schema, including zod
273
+
274
+ ### Patch Changes
275
+
276
+ - Updated dependencies [042d072]
277
+ - @contractspec/module.notifications@1.43.0
278
+ - @contractspec/module.audit-trail@1.43.0
279
+ - @contractspec/lib.identity-rbac@1.43.0
280
+ - @contractspec/lib.contracts@1.43.0
281
+ - @contractspec/lib.schema@1.43.0
282
+ - @contractspec/lib.jobs@1.43.0
283
+ - @contractspec/lib.bus@1.43.0
284
+
285
+ ## 1.42.10
286
+
287
+ ### Patch Changes
288
+
289
+ - 1e6a0f1: fix: mcp server
290
+ - Updated dependencies [1e6a0f1]
291
+ - @contractspec/module.notifications@1.42.10
292
+ - @contractspec/module.audit-trail@1.42.10
293
+ - @contractspec/lib.identity-rbac@1.42.10
294
+ - @contractspec/lib.contracts@1.42.10
295
+ - @contractspec/lib.schema@1.42.10
296
+ - @contractspec/lib.jobs@1.42.10
297
+ - @contractspec/lib.bus@1.42.10
298
+
299
+ ## 1.42.9
300
+
301
+ ### Patch Changes
302
+
303
+ - 9281db7: fix ModelRegistry
304
+ - Updated dependencies [9281db7]
305
+ - @contractspec/module.notifications@1.42.9
306
+ - @contractspec/module.audit-trail@1.42.9
307
+ - @contractspec/lib.identity-rbac@1.42.9
308
+ - @contractspec/lib.contracts@1.42.9
309
+ - @contractspec/lib.schema@1.42.9
310
+ - @contractspec/lib.jobs@1.42.9
311
+ - @contractspec/lib.bus@1.42.9
312
+
313
+ ## 1.42.8
314
+
315
+ ### Patch Changes
316
+
317
+ - e07b5ac: fix
318
+ - Updated dependencies [e07b5ac]
319
+ - @contractspec/module.notifications@1.42.8
320
+ - @contractspec/module.audit-trail@1.42.8
321
+ - @contractspec/lib.identity-rbac@1.42.8
322
+ - @contractspec/lib.contracts@1.42.8
323
+ - @contractspec/lib.schema@1.42.8
324
+ - @contractspec/lib.jobs@1.42.8
325
+ - @contractspec/lib.bus@1.42.8
326
+
327
+ ## 1.42.7
328
+
329
+ ### Patch Changes
330
+
331
+ - e9b575d: fix release
332
+ - Updated dependencies [e9b575d]
333
+ - @contractspec/module.notifications@1.42.7
334
+ - @contractspec/module.audit-trail@1.42.7
335
+ - @contractspec/lib.identity-rbac@1.42.7
336
+ - @contractspec/lib.contracts@1.42.7
337
+ - @contractspec/lib.schema@1.42.7
338
+ - @contractspec/lib.jobs@1.42.7
339
+ - @contractspec/lib.bus@1.42.7
340
+
341
+ ## 1.42.6
342
+
343
+ ### Patch Changes
344
+
345
+ - 1500242: fix tooling
346
+ - Updated dependencies [1500242]
347
+ - @contractspec/module.notifications@1.42.6
348
+ - @contractspec/module.audit-trail@1.42.6
349
+ - @contractspec/lib.identity-rbac@1.42.6
350
+ - @contractspec/lib.contracts@1.42.6
351
+ - @contractspec/lib.schema@1.42.6
352
+ - @contractspec/lib.jobs@1.42.6
353
+ - @contractspec/lib.bus@1.42.6
354
+
355
+ ## 1.42.5
356
+
357
+ ### Patch Changes
358
+
359
+ - 1299719: fix vscode
360
+ - Updated dependencies [1299719]
361
+ - @contractspec/module.notifications@1.42.5
362
+ - @contractspec/module.audit-trail@1.42.5
363
+ - @contractspec/lib.identity-rbac@1.42.5
364
+ - @contractspec/lib.contracts@1.42.5
365
+ - @contractspec/lib.schema@1.42.5
366
+ - @contractspec/lib.jobs@1.42.5
367
+ - @contractspec/lib.bus@1.42.5
368
+
369
+ ## 1.42.4
370
+
371
+ ### Patch Changes
372
+
373
+ - ac28b99: fix: generate from openapi
374
+ - Updated dependencies [ac28b99]
375
+ - @contractspec/module.notifications@1.42.4
376
+ - @contractspec/module.audit-trail@1.42.4
377
+ - @contractspec/lib.identity-rbac@1.42.4
378
+ - @contractspec/lib.contracts@1.42.4
379
+ - @contractspec/lib.schema@1.42.4
380
+ - @contractspec/lib.jobs@1.42.4
381
+ - @contractspec/lib.bus@1.42.4
382
+
383
+ ## 1.42.3
384
+
385
+ ### Patch Changes
386
+
387
+ - 3f5d015: fix(tooling): cicd
388
+ - Updated dependencies [3f5d015]
389
+ - @contractspec/lib.bus@1.42.3
390
+ - @contractspec/lib.contracts@1.42.3
391
+ - @contractspec/lib.identity-rbac@1.42.3
392
+ - @contractspec/lib.jobs@1.42.3
393
+ - @contractspec/lib.schema@1.42.3
394
+ - @contractspec/module.audit-trail@1.42.3
395
+ - @contractspec/module.notifications@1.42.3
396
+
397
+ ## 1.42.2
398
+
399
+ ### Patch Changes
400
+
401
+ - 1f9ac4c: fix
402
+ - Updated dependencies [1f9ac4c]
403
+ - @contractspec/lib.bus@1.42.2
404
+ - @contractspec/lib.contracts@1.42.2
405
+ - @contractspec/lib.identity-rbac@1.42.2
406
+ - @contractspec/lib.jobs@1.42.2
407
+ - @contractspec/lib.schema@1.42.2
408
+ - @contractspec/module.audit-trail@1.42.2
409
+ - @contractspec/module.notifications@1.42.2
410
+
411
+ ## 1.42.1
412
+
413
+ ### Patch Changes
414
+
415
+ - f043995: Fix release
416
+ - Updated dependencies [f043995]
417
+ - @contractspec/module.notifications@1.42.1
418
+ - @contractspec/module.audit-trail@1.42.1
419
+ - @contractspec/lib.identity-rbac@1.42.1
420
+ - @contractspec/lib.contracts@1.42.1
421
+ - @contractspec/lib.schema@1.42.1
422
+ - @contractspec/lib.jobs@1.42.1
423
+ - @contractspec/lib.bus@1.42.1
424
+
425
+ ## 1.42.0
426
+
427
+ ### Minor Changes
428
+
429
+ - 8eefd9c: initial release
430
+
431
+ ### Patch Changes
432
+
433
+ - Updated dependencies [8eefd9c]
434
+ - @contractspec/lib.bus@1.42.0
435
+ - @contractspec/lib.contracts@1.42.0
436
+ - @contractspec/lib.identity-rbac@1.42.0
437
+ - @contractspec/lib.jobs@1.42.0
438
+ - @contractspec/lib.schema@1.42.0
439
+ - @contractspec/module.audit-trail@1.42.0
440
+ - @contractspec/module.notifications@1.42.0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Chaman Ventures, SASU
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,155 @@
1
+ # SaaS Boilerplate
2
+
3
+ Website: https://contractspec.io/
4
+
5
+
6
+ A complete SaaS starter application demonstrating ContractSpec principles.
7
+
8
+ ## What's Included
9
+
10
+ This example showcases a full SaaS application with:
11
+
12
+ - **User Management**: User profiles, authentication, preferences
13
+ - **Organizations**: Multi-tenant workspaces with members and roles
14
+ - **Projects**: Team-scoped projects with CRUD operations
15
+ - **Billing**: Usage tracking and subscription management
16
+ - **Settings**: Application and user settings
17
+
18
+ ## Architecture
19
+
20
+ ```
21
+ saas-boilerplate/
22
+ ├── entities/ # Entity specs (generates Prisma schema)
23
+ │ ├── project.ts
24
+ │ ├── settings.ts
25
+ │ └── billing.ts
26
+ ├── contracts/ # API contracts (generates GraphQL/REST)
27
+ │ ├── project.ts
28
+ │ └── billing.ts
29
+ ├── events/ # Domain events
30
+ │ └── index.ts
31
+ ├── schema.config.ts # Schema composition config
32
+ └── README.md
33
+ ```
34
+
35
+ ## Cross-Cutting Modules Used
36
+
37
+ | Module | Purpose |
38
+ |--------|---------|
39
+ | @contractspec/lib.identity-rbac | User, Org, Member, Role entities |
40
+ | @contractspec/module.audit-trail | Activity logging |
41
+ | @contractspec/module.notifications | User notifications |
42
+ | @contractspec/lib.jobs | Background tasks |
43
+
44
+ ## Entities
45
+
46
+ ### Project
47
+
48
+ Projects belong to organizations and track team work.
49
+
50
+ ```typescript
51
+ const ProjectEntity = defineEntity({
52
+ name: 'Project',
53
+ fields: {
54
+ id: field.id(),
55
+ name: field.string(),
56
+ description: field.string({ isOptional: true }),
57
+ organizationId: field.foreignKey(),
58
+ createdBy: field.foreignKey(),
59
+ status: field.enum('ProjectStatus'),
60
+ // ...
61
+ },
62
+ });
63
+ ```
64
+
65
+ ### Settings
66
+
67
+ Application and organization settings.
68
+
69
+ ```typescript
70
+ const SettingsEntity = defineEntity({
71
+ name: 'Settings',
72
+ fields: {
73
+ id: field.id(),
74
+ key: field.string(),
75
+ value: field.json(),
76
+ scope: field.enum('SettingsScope'), // 'app', 'org', 'user'
77
+ // ...
78
+ },
79
+ });
80
+ ```
81
+
82
+ ### BillingUsage
83
+
84
+ Track feature usage for billing.
85
+
86
+ ```typescript
87
+ const BillingUsageEntity = defineEntity({
88
+ name: 'BillingUsage',
89
+ fields: {
90
+ id: field.id(),
91
+ organizationId: field.foreignKey(),
92
+ feature: field.string(),
93
+ quantity: field.int(),
94
+ billingPeriod: field.string(),
95
+ // ...
96
+ },
97
+ });
98
+ ```
99
+
100
+ ## Contracts
101
+
102
+ ### Project CRUD
103
+
104
+ - `project.create` - Create a new project
105
+ - `project.get` - Get project by ID
106
+ - `project.update` - Update project
107
+ - `project.delete` - Delete project
108
+ - `project.list` - List org projects
109
+
110
+ ### Billing
111
+
112
+ - `billing.usage.record` - Record feature usage
113
+ - `billing.usage.get` - Get usage summary
114
+ - `billing.subscription.get` - Get subscription status
115
+
116
+ ## Events
117
+
118
+ | Event | Description |
119
+ |-------|-------------|
120
+ | project.created | New project created |
121
+ | project.updated | Project modified |
122
+ | project.deleted | Project removed |
123
+ | billing.usage.recorded | Usage tracked |
124
+ | billing.limit.reached | Usage limit hit |
125
+
126
+ ## Usage
127
+
128
+ ### Generate Schema
129
+
130
+ ```bash
131
+ cd packages/examples/saas-boilerplate
132
+ ```
133
+
134
+ ### Load as Studio Template
135
+
136
+ This example is registered in the ContractSpec Studio template registry as `saas-boilerplate`.
137
+
138
+ From the Studio UI:
139
+ 1. Click "New Project"
140
+ 2. Select "SaaS Boilerplate" template
141
+ 3. Customize entities and contracts as needed
142
+
143
+ ### Clone via Git
144
+
145
+ ```bash
146
+ npx degit lssm/contractspec/packages/examples/saas-boilerplate my-saas-app
147
+ ```
148
+
149
+ ## Customization Points
150
+
151
+ 1. **Add Custom Entities**: Extend with your domain models
152
+ 2. **Modify Billing**: Adapt to your pricing model
153
+ 3. **Extend Settings**: Add app-specific configuration
154
+ 4. **Add Workflows**: Integrate with @contractspec/lib.jobs for background tasks
155
+
@@ -0,0 +1,61 @@
1
+ import * as _contractspec_lib_schema0 from "@contractspec/lib.schema";
2
+
3
+ //#region src/billing/billing.entity.d.ts
4
+ /**
5
+ * Subscription status enum for entities.
6
+ */
7
+ declare const SubscriptionStatusEnum: _contractspec_lib_schema0.EntityEnumDef;
8
+ /**
9
+ * Subscription entity - organization subscription info.
10
+ */
11
+ declare const SubscriptionEntity: _contractspec_lib_schema0.EntitySpec<{
12
+ id: _contractspec_lib_schema0.EntityScalarField;
13
+ organizationId: _contractspec_lib_schema0.EntityScalarField;
14
+ planId: _contractspec_lib_schema0.EntityScalarField;
15
+ planName: _contractspec_lib_schema0.EntityScalarField;
16
+ status: _contractspec_lib_schema0.EntityEnumField;
17
+ currentPeriodStart: _contractspec_lib_schema0.EntityScalarField;
18
+ currentPeriodEnd: _contractspec_lib_schema0.EntityScalarField;
19
+ trialEndsAt: _contractspec_lib_schema0.EntityScalarField;
20
+ cancelAtPeriodEnd: _contractspec_lib_schema0.EntityScalarField;
21
+ canceledAt: _contractspec_lib_schema0.EntityScalarField;
22
+ stripeSubscriptionId: _contractspec_lib_schema0.EntityScalarField;
23
+ stripeCustomerId: _contractspec_lib_schema0.EntityScalarField;
24
+ metadata: _contractspec_lib_schema0.EntityScalarField;
25
+ createdAt: _contractspec_lib_schema0.EntityScalarField;
26
+ updatedAt: _contractspec_lib_schema0.EntityScalarField;
27
+ }>;
28
+ /**
29
+ * BillingUsage entity - track feature usage.
30
+ */
31
+ declare const BillingUsageEntity: _contractspec_lib_schema0.EntitySpec<{
32
+ id: _contractspec_lib_schema0.EntityScalarField;
33
+ organizationId: _contractspec_lib_schema0.EntityScalarField;
34
+ feature: _contractspec_lib_schema0.EntityScalarField;
35
+ quantity: _contractspec_lib_schema0.EntityScalarField;
36
+ unit: _contractspec_lib_schema0.EntityScalarField;
37
+ billingPeriod: _contractspec_lib_schema0.EntityScalarField;
38
+ recordedAt: _contractspec_lib_schema0.EntityScalarField;
39
+ sourceId: _contractspec_lib_schema0.EntityScalarField;
40
+ sourceType: _contractspec_lib_schema0.EntityScalarField;
41
+ metadata: _contractspec_lib_schema0.EntityScalarField;
42
+ }>;
43
+ /**
44
+ * UsageLimit entity - feature usage limits per plan.
45
+ */
46
+ declare const UsageLimitEntity: _contractspec_lib_schema0.EntitySpec<{
47
+ id: _contractspec_lib_schema0.EntityScalarField;
48
+ planId: _contractspec_lib_schema0.EntityScalarField;
49
+ organizationId: _contractspec_lib_schema0.EntityScalarField;
50
+ feature: _contractspec_lib_schema0.EntityScalarField;
51
+ limit: _contractspec_lib_schema0.EntityScalarField;
52
+ resetPeriod: _contractspec_lib_schema0.EntityScalarField;
53
+ isSoftLimit: _contractspec_lib_schema0.EntityScalarField;
54
+ overage: _contractspec_lib_schema0.EntityScalarField;
55
+ overageRate: _contractspec_lib_schema0.EntityScalarField;
56
+ createdAt: _contractspec_lib_schema0.EntityScalarField;
57
+ updatedAt: _contractspec_lib_schema0.EntityScalarField;
58
+ }>;
59
+ //#endregion
60
+ export { BillingUsageEntity, SubscriptionEntity, SubscriptionStatusEnum, UsageLimitEntity };
61
+ //# sourceMappingURL=billing.entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing.entity.d.ts","names":[],"sources":["../../src/billing/billing.entity.ts"],"sourcesContent":[],"mappings":";;;;;;AAUa,cAAA,sBAKX,EAAA,yBAAA,CALiC,aAKjC;AAKF;;;cAAa,8CAAkB;MAuC7B,yBAAA,CAAA;;;;;;;;;;;;uDAvC6B;EAAA,SAAA,6CAAA;EA4ClB,SAAA,6CA2CX;CAAA,CAAA;;;;cA3CW,8CAAkB;MA2C7B,yBAAA,CAAA;;;;;4DA3C6B;EAAA,UAAA,6CAAA;EAgDlB,QAAA,6CA6CX;EAAA,UAAA,6CAAA;;;;;;cA7CW,4CAAgB;MA6C3B,yBAAA,CAAA;;;;oDA7C2B;EAAA,WAAA,6CAAA"}