@contractspec/example.saas-boilerplate 1.57.0 → 1.59.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 (283) hide show
  1. package/.turbo/turbo-build.log +160 -180
  2. package/.turbo/turbo-prebuild.log +1 -0
  3. package/CHANGELOG.md +39 -0
  4. package/dist/billing/billing.entity.d.ts +40 -45
  5. package/dist/billing/billing.entity.d.ts.map +1 -1
  6. package/dist/billing/billing.entity.js +110 -118
  7. package/dist/billing/billing.enum.d.ts +2 -7
  8. package/dist/billing/billing.enum.d.ts.map +1 -1
  9. package/dist/billing/billing.enum.js +17 -24
  10. package/dist/billing/billing.event.d.ts +67 -73
  11. package/dist/billing/billing.event.d.ts.map +1 -1
  12. package/dist/billing/billing.event.js +84 -146
  13. package/dist/billing/billing.handler.d.ts +59 -62
  14. package/dist/billing/billing.handler.d.ts.map +1 -1
  15. package/dist/billing/billing.handler.js +140 -49
  16. package/dist/billing/billing.operations.d.ts +138 -144
  17. package/dist/billing/billing.operations.d.ts.map +1 -1
  18. package/dist/billing/billing.operations.js +273 -175
  19. package/dist/billing/billing.presentation.d.ts +2 -7
  20. package/dist/billing/billing.presentation.d.ts.map +1 -1
  21. package/dist/billing/billing.presentation.js +51 -57
  22. package/dist/billing/billing.schema.d.ts +159 -164
  23. package/dist/billing/billing.schema.d.ts.map +1 -1
  24. package/dist/billing/billing.schema.js +112 -204
  25. package/dist/billing/index.d.ts +11 -8
  26. package/dist/billing/index.d.ts.map +1 -0
  27. package/dist/billing/index.js +689 -9
  28. package/dist/browser/billing/billing.entity.js +113 -0
  29. package/dist/browser/billing/billing.enum.js +19 -0
  30. package/dist/browser/billing/billing.event.js +90 -0
  31. package/dist/browser/billing/billing.handler.js +148 -0
  32. package/dist/browser/billing/billing.operations.js +278 -0
  33. package/dist/browser/billing/billing.presentation.js +52 -0
  34. package/dist/browser/billing/billing.schema.js +121 -0
  35. package/dist/browser/billing/index.js +688 -0
  36. package/dist/browser/dashboard/dashboard.presentation.js +52 -0
  37. package/dist/browser/dashboard/index.js +52 -0
  38. package/dist/browser/docs/index.js +93 -0
  39. package/dist/browser/docs/saas-boilerplate.docblock.js +93 -0
  40. package/dist/browser/example.js +39 -0
  41. package/dist/browser/handlers/index.js +358 -0
  42. package/dist/browser/handlers/saas.handlers.js +134 -0
  43. package/dist/browser/index.js +3340 -0
  44. package/dist/browser/presentations/index.js +290 -0
  45. package/dist/browser/project/index.js +790 -0
  46. package/dist/browser/project/project.entity.js +77 -0
  47. package/dist/browser/project/project.enum.js +18 -0
  48. package/dist/browser/project/project.event.js +103 -0
  49. package/dist/browser/project/project.handler.js +178 -0
  50. package/dist/browser/project/project.operations.js +372 -0
  51. package/dist/browser/project/project.presentation.js +177 -0
  52. package/dist/browser/project/project.schema.js +134 -0
  53. package/dist/browser/saas-boilerplate.feature.js +88 -0
  54. package/dist/browser/seeders/index.js +20 -0
  55. package/dist/browser/settings/index.js +75 -0
  56. package/dist/browser/settings/settings.entity.js +74 -0
  57. package/dist/browser/settings/settings.enum.js +11 -0
  58. package/dist/browser/shared/mock-data.js +104 -0
  59. package/dist/browser/shared/overlay-types.js +0 -0
  60. package/dist/browser/tests/operations.test-spec.js +112 -0
  61. package/dist/browser/ui/SaasDashboard.js +988 -0
  62. package/dist/browser/ui/SaasProjectList.js +162 -0
  63. package/dist/browser/ui/SaasSettingsPanel.js +145 -0
  64. package/dist/browser/ui/hooks/index.js +159 -0
  65. package/dist/browser/ui/hooks/useProjectList.js +66 -0
  66. package/dist/browser/ui/hooks/useProjectMutations.js +91 -0
  67. package/dist/browser/ui/index.js +1808 -0
  68. package/dist/browser/ui/modals/CreateProjectModal.js +153 -0
  69. package/dist/browser/ui/modals/ProjectActionsModal.js +335 -0
  70. package/dist/browser/ui/modals/index.js +487 -0
  71. package/dist/browser/ui/overlays/demo-overlays.js +61 -0
  72. package/dist/browser/ui/overlays/index.js +61 -0
  73. package/dist/browser/ui/renderers/index.js +675 -0
  74. package/dist/browser/ui/renderers/project-list.markdown.js +499 -0
  75. package/dist/browser/ui/renderers/project-list.renderer.js +177 -0
  76. package/dist/dashboard/dashboard.presentation.d.ts +2 -7
  77. package/dist/dashboard/dashboard.presentation.d.ts.map +1 -1
  78. package/dist/dashboard/dashboard.presentation.js +51 -53
  79. package/dist/dashboard/index.d.ts +5 -2
  80. package/dist/dashboard/index.d.ts.map +1 -0
  81. package/dist/dashboard/index.js +53 -3
  82. package/dist/docs/index.d.ts +2 -1
  83. package/dist/docs/index.d.ts.map +1 -0
  84. package/dist/docs/index.js +94 -1
  85. package/dist/docs/saas-boilerplate.docblock.d.ts +2 -1
  86. package/dist/docs/saas-boilerplate.docblock.d.ts.map +1 -0
  87. package/dist/docs/saas-boilerplate.docblock.js +45 -51
  88. package/dist/example.d.ts +2 -6
  89. package/dist/example.d.ts.map +1 -1
  90. package/dist/example.js +38 -50
  91. package/dist/handlers/index.d.ts +7 -4
  92. package/dist/handlers/index.d.ts.map +1 -0
  93. package/dist/handlers/index.js +358 -4
  94. package/dist/handlers/saas.handlers.d.ts +60 -59
  95. package/dist/handlers/saas.handlers.d.ts.map +1 -1
  96. package/dist/handlers/saas.handlers.js +127 -140
  97. package/dist/index.d.ts +15 -45
  98. package/dist/index.d.ts.map +1 -1
  99. package/dist/index.js +3335 -75
  100. package/dist/node/billing/billing.entity.js +113 -0
  101. package/dist/node/billing/billing.enum.js +19 -0
  102. package/dist/node/billing/billing.event.js +90 -0
  103. package/dist/node/billing/billing.handler.js +148 -0
  104. package/dist/node/billing/billing.operations.js +278 -0
  105. package/dist/node/billing/billing.presentation.js +52 -0
  106. package/dist/node/billing/billing.schema.js +121 -0
  107. package/dist/node/billing/index.js +688 -0
  108. package/dist/node/dashboard/dashboard.presentation.js +52 -0
  109. package/dist/node/dashboard/index.js +52 -0
  110. package/dist/node/docs/index.js +93 -0
  111. package/dist/node/docs/saas-boilerplate.docblock.js +93 -0
  112. package/dist/node/example.js +39 -0
  113. package/dist/node/handlers/index.js +358 -0
  114. package/dist/node/handlers/saas.handlers.js +134 -0
  115. package/dist/node/index.js +3340 -0
  116. package/dist/node/presentations/index.js +290 -0
  117. package/dist/node/project/index.js +790 -0
  118. package/dist/node/project/project.entity.js +77 -0
  119. package/dist/node/project/project.enum.js +18 -0
  120. package/dist/node/project/project.event.js +103 -0
  121. package/dist/node/project/project.handler.js +178 -0
  122. package/dist/node/project/project.operations.js +372 -0
  123. package/dist/node/project/project.presentation.js +177 -0
  124. package/dist/node/project/project.schema.js +134 -0
  125. package/dist/node/saas-boilerplate.feature.js +88 -0
  126. package/dist/node/seeders/index.js +20 -0
  127. package/dist/node/settings/index.js +75 -0
  128. package/dist/node/settings/settings.entity.js +74 -0
  129. package/dist/node/settings/settings.enum.js +11 -0
  130. package/dist/node/shared/mock-data.js +104 -0
  131. package/dist/node/shared/overlay-types.js +0 -0
  132. package/dist/node/tests/operations.test-spec.js +112 -0
  133. package/dist/node/ui/SaasDashboard.js +988 -0
  134. package/dist/node/ui/SaasProjectList.js +162 -0
  135. package/dist/node/ui/SaasSettingsPanel.js +145 -0
  136. package/dist/node/ui/hooks/index.js +159 -0
  137. package/dist/node/ui/hooks/useProjectList.js +66 -0
  138. package/dist/node/ui/hooks/useProjectMutations.js +91 -0
  139. package/dist/node/ui/index.js +1808 -0
  140. package/dist/node/ui/modals/CreateProjectModal.js +153 -0
  141. package/dist/node/ui/modals/ProjectActionsModal.js +335 -0
  142. package/dist/node/ui/modals/index.js +487 -0
  143. package/dist/node/ui/overlays/demo-overlays.js +61 -0
  144. package/dist/node/ui/overlays/index.js +61 -0
  145. package/dist/node/ui/renderers/index.js +675 -0
  146. package/dist/node/ui/renderers/project-list.markdown.js +499 -0
  147. package/dist/node/ui/renderers/project-list.renderer.js +177 -0
  148. package/dist/presentations/index.d.ts +13 -14
  149. package/dist/presentations/index.d.ts.map +1 -1
  150. package/dist/presentations/index.js +289 -15
  151. package/dist/project/index.d.ts +11 -8
  152. package/dist/project/index.d.ts.map +1 -0
  153. package/dist/project/index.js +791 -9
  154. package/dist/project/project.entity.d.ts +23 -28
  155. package/dist/project/project.entity.d.ts.map +1 -1
  156. package/dist/project/project.entity.js +75 -82
  157. package/dist/project/project.enum.d.ts +2 -7
  158. package/dist/project/project.enum.d.ts.map +1 -1
  159. package/dist/project/project.enum.js +16 -23
  160. package/dist/project/project.event.d.ts +69 -75
  161. package/dist/project/project.event.d.ts.map +1 -1
  162. package/dist/project/project.event.js +95 -156
  163. package/dist/project/project.handler.d.ts +44 -47
  164. package/dist/project/project.handler.d.ts.map +1 -1
  165. package/dist/project/project.handler.js +168 -71
  166. package/dist/project/project.operations.d.ts +341 -347
  167. package/dist/project/project.operations.d.ts.map +1 -1
  168. package/dist/project/project.operations.js +366 -253
  169. package/dist/project/project.presentation.d.ts +2 -7
  170. package/dist/project/project.presentation.d.ts.map +1 -1
  171. package/dist/project/project.presentation.js +174 -61
  172. package/dist/project/project.schema.d.ts +191 -196
  173. package/dist/project/project.schema.d.ts.map +1 -1
  174. package/dist/project/project.schema.js +125 -205
  175. package/dist/saas-boilerplate.feature.d.ts +1 -6
  176. package/dist/saas-boilerplate.feature.d.ts.map +1 -1
  177. package/dist/saas-boilerplate.feature.js +87 -206
  178. package/dist/seeders/index.d.ts +4 -8
  179. package/dist/seeders/index.d.ts.map +1 -1
  180. package/dist/seeders/index.js +18 -16
  181. package/dist/settings/index.d.ts +6 -3
  182. package/dist/settings/index.d.ts.map +1 -0
  183. package/dist/settings/index.js +75 -3
  184. package/dist/settings/settings.entity.d.ts +23 -28
  185. package/dist/settings/settings.entity.d.ts.map +1 -1
  186. package/dist/settings/settings.entity.js +72 -75
  187. package/dist/settings/settings.enum.d.ts +1 -6
  188. package/dist/settings/settings.enum.d.ts.map +1 -1
  189. package/dist/settings/settings.enum.js +10 -19
  190. package/dist/shared/mock-data.d.ts +74 -77
  191. package/dist/shared/mock-data.d.ts.map +1 -1
  192. package/dist/shared/mock-data.js +102 -135
  193. package/dist/shared/overlay-types.d.ts +25 -28
  194. package/dist/shared/overlay-types.d.ts.map +1 -1
  195. package/dist/shared/overlay-types.js +1 -0
  196. package/dist/tests/operations.test-spec.d.ts +4 -9
  197. package/dist/tests/operations.test-spec.d.ts.map +1 -1
  198. package/dist/tests/operations.test-spec.js +108 -118
  199. package/dist/ui/SaasDashboard.d.ts +1 -6
  200. package/dist/ui/SaasDashboard.d.ts.map +1 -1
  201. package/dist/ui/SaasDashboard.js +977 -286
  202. package/dist/ui/SaasProjectList.d.ts +4 -11
  203. package/dist/ui/SaasProjectList.d.ts.map +1 -1
  204. package/dist/ui/SaasProjectList.js +159 -72
  205. package/dist/ui/SaasSettingsPanel.d.ts +1 -6
  206. package/dist/ui/SaasSettingsPanel.d.ts.map +1 -1
  207. package/dist/ui/SaasSettingsPanel.js +142 -134
  208. package/dist/ui/hooks/index.d.ts +3 -3
  209. package/dist/ui/hooks/index.d.ts.map +1 -0
  210. package/dist/ui/hooks/index.js +158 -4
  211. package/dist/ui/hooks/useProjectList.d.ts +26 -30
  212. package/dist/ui/hooks/useProjectList.d.ts.map +1 -1
  213. package/dist/ui/hooks/useProjectList.js +63 -71
  214. package/dist/ui/hooks/useProjectMutations.d.ts +20 -24
  215. package/dist/ui/hooks/useProjectMutations.d.ts.map +1 -1
  216. package/dist/ui/hooks/useProjectMutations.js +88 -142
  217. package/dist/ui/index.d.ts +8 -14
  218. package/dist/ui/index.d.ts.map +1 -0
  219. package/dist/ui/index.js +1809 -15
  220. package/dist/ui/modals/CreateProjectModal.d.ts +10 -19
  221. package/dist/ui/modals/CreateProjectModal.d.ts.map +1 -1
  222. package/dist/ui/modals/CreateProjectModal.js +150 -135
  223. package/dist/ui/modals/ProjectActionsModal.d.ts +20 -33
  224. package/dist/ui/modals/ProjectActionsModal.d.ts.map +1 -1
  225. package/dist/ui/modals/ProjectActionsModal.js +333 -289
  226. package/dist/ui/modals/index.d.ts +3 -3
  227. package/dist/ui/modals/index.d.ts.map +1 -0
  228. package/dist/ui/modals/index.js +487 -3
  229. package/dist/ui/overlays/demo-overlays.d.ts +10 -8
  230. package/dist/ui/overlays/demo-overlays.d.ts.map +1 -1
  231. package/dist/ui/overlays/demo-overlays.js +60 -68
  232. package/dist/ui/overlays/index.d.ts +2 -2
  233. package/dist/ui/overlays/index.d.ts.map +1 -0
  234. package/dist/ui/overlays/index.js +62 -3
  235. package/dist/ui/renderers/index.d.ts +3 -3
  236. package/dist/ui/renderers/index.d.ts.map +1 -0
  237. package/dist/ui/renderers/index.js +675 -3
  238. package/dist/ui/renderers/project-list.markdown.d.ts +15 -14
  239. package/dist/ui/renderers/project-list.markdown.d.ts.map +1 -1
  240. package/dist/ui/renderers/project-list.markdown.js +496 -146
  241. package/dist/ui/renderers/project-list.renderer.d.ts +6 -7
  242. package/dist/ui/renderers/project-list.renderer.d.ts.map +1 -1
  243. package/dist/ui/renderers/project-list.renderer.js +176 -15
  244. package/package.json +508 -98
  245. package/tsdown.config.js +1 -2
  246. package/.turbo/turbo-build$colon$bundle.log +0 -180
  247. package/dist/billing/billing.entity.js.map +0 -1
  248. package/dist/billing/billing.enum.js.map +0 -1
  249. package/dist/billing/billing.event.js.map +0 -1
  250. package/dist/billing/billing.handler.js.map +0 -1
  251. package/dist/billing/billing.operations.js.map +0 -1
  252. package/dist/billing/billing.presentation.js.map +0 -1
  253. package/dist/billing/billing.schema.js.map +0 -1
  254. package/dist/dashboard/dashboard.presentation.js.map +0 -1
  255. package/dist/docs/saas-boilerplate.docblock.js.map +0 -1
  256. package/dist/example.js.map +0 -1
  257. package/dist/handlers/saas.handlers.js.map +0 -1
  258. package/dist/index.js.map +0 -1
  259. package/dist/presentations/index.js.map +0 -1
  260. package/dist/project/project.entity.js.map +0 -1
  261. package/dist/project/project.enum.js.map +0 -1
  262. package/dist/project/project.event.js.map +0 -1
  263. package/dist/project/project.handler.js.map +0 -1
  264. package/dist/project/project.operations.js.map +0 -1
  265. package/dist/project/project.presentation.js.map +0 -1
  266. package/dist/project/project.schema.js.map +0 -1
  267. package/dist/saas-boilerplate.feature.js.map +0 -1
  268. package/dist/seeders/index.js.map +0 -1
  269. package/dist/settings/settings.entity.js.map +0 -1
  270. package/dist/settings/settings.enum.js.map +0 -1
  271. package/dist/shared/mock-data.js.map +0 -1
  272. package/dist/tests/operations.test-spec.js.map +0 -1
  273. package/dist/ui/SaasDashboard.js.map +0 -1
  274. package/dist/ui/SaasProjectList.js.map +0 -1
  275. package/dist/ui/SaasSettingsPanel.js.map +0 -1
  276. package/dist/ui/hooks/useProjectList.js.map +0 -1
  277. package/dist/ui/hooks/useProjectMutations.js.map +0 -1
  278. package/dist/ui/modals/CreateProjectModal.js.map +0 -1
  279. package/dist/ui/modals/ProjectActionsModal.js.map +0 -1
  280. package/dist/ui/overlays/demo-overlays.js.map +0 -1
  281. package/dist/ui/renderers/project-list.markdown.js.map +0 -1
  282. package/dist/ui/renderers/project-list.renderer.js.map +0 -1
  283. package/tsconfig.tsbuildinfo +0 -1
@@ -1,55 +1,53 @@
1
- import { StabilityEnum, definePresentation } from "@contractspec/lib.contracts";
2
-
3
- //#region src/dashboard/dashboard.presentation.ts
4
- /**
5
- * Main dashboard presentation for the SaaS application.
6
- */
7
- const SaasDashboardPresentation = definePresentation({
8
- meta: {
9
- key: "saas.dashboard",
10
- version: "1.0.0",
11
- title: "SaaS Dashboard",
12
- description: "Main SaaS dashboard with project overview, usage stats, and quick actions",
13
- domain: "saas-boilerplate",
14
- owners: ["@saas-team"],
15
- tags: ["dashboard", "overview"],
16
- stability: StabilityEnum.Beta,
17
- goal: "Overview of SaaS activity and metrics",
18
- context: "Main dashboard"
19
- },
20
- source: {
21
- type: "component",
22
- framework: "react",
23
- componentKey: "SaasDashboard"
24
- },
25
- targets: ["react", "markdown"],
26
- policy: { flags: ["saas.enabled"] }
1
+ // @bun
2
+ // src/dashboard/dashboard.presentation.ts
3
+ import { definePresentation, StabilityEnum } from "@contractspec/lib.contracts";
4
+ var SaasDashboardPresentation = definePresentation({
5
+ meta: {
6
+ key: "saas.dashboard",
7
+ version: "1.0.0",
8
+ title: "SaaS Dashboard",
9
+ description: "Main SaaS dashboard with project overview, usage stats, and quick actions",
10
+ domain: "saas-boilerplate",
11
+ owners: ["@saas-team"],
12
+ tags: ["dashboard", "overview"],
13
+ stability: StabilityEnum.Beta,
14
+ goal: "Overview of SaaS activity and metrics",
15
+ context: "Main dashboard"
16
+ },
17
+ source: {
18
+ type: "component",
19
+ framework: "react",
20
+ componentKey: "SaasDashboard"
21
+ },
22
+ targets: ["react", "markdown"],
23
+ policy: {
24
+ flags: ["saas.enabled"]
25
+ }
27
26
  });
28
- /**
29
- * Settings panel presentation.
30
- */
31
- const SettingsPanelPresentation = definePresentation({
32
- meta: {
33
- key: "saas.settings",
34
- version: "1.0.0",
35
- title: "Settings Panel",
36
- description: "Organization and user settings panel",
37
- domain: "saas-boilerplate",
38
- owners: ["@saas-team"],
39
- tags: ["settings", "config"],
40
- stability: StabilityEnum.Beta,
41
- goal: "Configure organization and user settings",
42
- context: "Settings section"
43
- },
44
- source: {
45
- type: "component",
46
- framework: "react",
47
- componentKey: "SettingsPanel"
48
- },
49
- targets: ["react"],
50
- policy: { flags: ["saas.enabled"] }
27
+ var SettingsPanelPresentation = definePresentation({
28
+ meta: {
29
+ key: "saas.settings",
30
+ version: "1.0.0",
31
+ title: "Settings Panel",
32
+ description: "Organization and user settings panel",
33
+ domain: "saas-boilerplate",
34
+ owners: ["@saas-team"],
35
+ tags: ["settings", "config"],
36
+ stability: StabilityEnum.Beta,
37
+ goal: "Configure organization and user settings",
38
+ context: "Settings section"
39
+ },
40
+ source: {
41
+ type: "component",
42
+ framework: "react",
43
+ componentKey: "SettingsPanel"
44
+ },
45
+ targets: ["react"],
46
+ policy: {
47
+ flags: ["saas.enabled"]
48
+ }
51
49
  });
52
-
53
- //#endregion
54
- export { SaasDashboardPresentation, SettingsPanelPresentation };
55
- //# sourceMappingURL=dashboard.presentation.js.map
50
+ export {
51
+ SettingsPanelPresentation,
52
+ SaasDashboardPresentation
53
+ };
@@ -1,2 +1,5 @@
1
- import { SaasDashboardPresentation, SettingsPanelPresentation } from "./dashboard.presentation.js";
2
- export { SaasDashboardPresentation, SettingsPanelPresentation };
1
+ /**
2
+ * Dashboard domain - main SaaS dashboard and settings panels.
3
+ */
4
+ export { SaasDashboardPresentation, SettingsPanelPresentation, } from './dashboard.presentation';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dashboard/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC"}
@@ -1,3 +1,53 @@
1
- import { SaasDashboardPresentation, SettingsPanelPresentation } from "./dashboard.presentation.js";
2
-
3
- export { SaasDashboardPresentation, SettingsPanelPresentation };
1
+ // @bun
2
+ // src/dashboard/dashboard.presentation.ts
3
+ import { definePresentation, StabilityEnum } from "@contractspec/lib.contracts";
4
+ var SaasDashboardPresentation = definePresentation({
5
+ meta: {
6
+ key: "saas.dashboard",
7
+ version: "1.0.0",
8
+ title: "SaaS Dashboard",
9
+ description: "Main SaaS dashboard with project overview, usage stats, and quick actions",
10
+ domain: "saas-boilerplate",
11
+ owners: ["@saas-team"],
12
+ tags: ["dashboard", "overview"],
13
+ stability: StabilityEnum.Beta,
14
+ goal: "Overview of SaaS activity and metrics",
15
+ context: "Main dashboard"
16
+ },
17
+ source: {
18
+ type: "component",
19
+ framework: "react",
20
+ componentKey: "SaasDashboard"
21
+ },
22
+ targets: ["react", "markdown"],
23
+ policy: {
24
+ flags: ["saas.enabled"]
25
+ }
26
+ });
27
+ var SettingsPanelPresentation = definePresentation({
28
+ meta: {
29
+ key: "saas.settings",
30
+ version: "1.0.0",
31
+ title: "Settings Panel",
32
+ description: "Organization and user settings panel",
33
+ domain: "saas-boilerplate",
34
+ owners: ["@saas-team"],
35
+ tags: ["settings", "config"],
36
+ stability: StabilityEnum.Beta,
37
+ goal: "Configure organization and user settings",
38
+ context: "Settings section"
39
+ },
40
+ source: {
41
+ type: "component",
42
+ framework: "react",
43
+ componentKey: "SettingsPanel"
44
+ },
45
+ targets: ["react"],
46
+ policy: {
47
+ flags: ["saas.enabled"]
48
+ }
49
+ });
50
+ export {
51
+ SettingsPanelPresentation,
52
+ SaasDashboardPresentation
53
+ };
@@ -1 +1,2 @@
1
- export { };
1
+ import './saas-boilerplate.docblock';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/docs/index.ts"],"names":[],"mappings":"AAAA,OAAO,6BAA6B,CAAC"}
@@ -1 +1,94 @@
1
- import "./saas-boilerplate.docblock.js";
1
+ // @bun
2
+ // src/docs/saas-boilerplate.docblock.ts
3
+ import { registerDocBlocks } from "@contractspec/lib.contracts/docs";
4
+ var saasBoilerplateDocBlocks = [
5
+ {
6
+ id: "docs.examples.saas-boilerplate.goal",
7
+ title: "SaaS Boilerplate \u2014 Goal",
8
+ summary: "Multi-tenant SaaS foundation with orgs, members, projects, settings, and usage.",
9
+ kind: "goal",
10
+ visibility: "public",
11
+ route: "/docs/examples/saas-boilerplate/goal",
12
+ tags: ["saas", "goal"],
13
+ body: `## Why it matters
14
+ - Provides a regenerable SaaS base: orgs, members, projects, settings, usage/billing.
15
+ - Avoids drift across identity, settings, and usage capture.
16
+
17
+ ## Business/Product goal
18
+ - Ship SaaS faster with tenant isolation, RBAC, and usage metering baked in.
19
+ - Keep audit/notifications ready for compliance and customer comms.
20
+
21
+ ## Success criteria
22
+ - Spec changes to org/project/settings/usage regenerate UI/API/events cleanly.
23
+ - Tenant isolation and RBAC stay enforced; usage data is captured with PII scopes.`
24
+ },
25
+ {
26
+ id: "docs.examples.saas-boilerplate.usage",
27
+ title: "SaaS Boilerplate \u2014 Usage",
28
+ summary: "How to seed, extend, and regenerate the SaaS base.",
29
+ kind: "usage",
30
+ visibility: "public",
31
+ route: "/docs/examples/saas-boilerplate/usage",
32
+ tags: ["saas", "usage"],
33
+ body: `## Setup
34
+ 1) Seed (if available) or create orgs, members, and projects via UI.
35
+ 2) Configure Notifications for invites and project events; set policy.pii for sensitive fields.
36
+
37
+ ## Extend & regenerate
38
+ 1) Adjust schemas (project metadata, settings, usage records) in spec.
39
+ 2) Regenerate to sync UI/API/events and usage metering.
40
+ 3) Use Feature Flags to roll out new settings or billing fields gradually.
41
+
42
+ ## Guardrails
43
+ - Keep tenant/role context explicit in contracts and presentations.
44
+ - Emit events for invites, project changes, and usage records; log in Audit Trail.
45
+ - Redact sensitive user/org data in markdown/JSON outputs.`
46
+ },
47
+ {
48
+ id: "docs.examples.saas-boilerplate.reference",
49
+ title: "SaaS Boilerplate \u2014 Reference",
50
+ summary: "Entities, contracts, events, and presentations for the SaaS starter.",
51
+ kind: "reference",
52
+ visibility: "public",
53
+ route: "/docs/examples/saas-boilerplate",
54
+ tags: ["saas", "reference"],
55
+ body: `## Entities
56
+ - Organization, Member, Role, Project, AppSettings, UserSettings, BillingUsage.
57
+
58
+ ## Contracts
59
+ - org/project CRUD, invites, role assignment, usage recording.
60
+
61
+ ## Events
62
+ - org.created, member.invited/accepted, project.created/updated, usage.recorded.
63
+
64
+ ## Presentations
65
+ - Org/project dashboards, member management, settings screens, usage views.
66
+
67
+ ## Notes
68
+ - Tenant isolation is mandatory; enforce via RBAC/policies.
69
+ - Usage/Metering drives billing/limits; keep units explicit.`
70
+ },
71
+ {
72
+ id: "docs.examples.saas-boilerplate.constraints",
73
+ title: "SaaS Boilerplate \u2014 Constraints & Safety",
74
+ summary: "Internal guardrails for tenancy, RBAC, usage metering, and regeneration.",
75
+ kind: "reference",
76
+ visibility: "internal",
77
+ route: "/docs/examples/saas-boilerplate/constraints",
78
+ tags: ["saas", "constraints", "internal"],
79
+ body: `## Constraints
80
+ - Tenant isolation and RBAC must remain explicit in spec; no implicit defaults in code.
81
+ - Events to emit: org.created, member.invited/accepted, project.created/updated, usage.recorded.
82
+ - Regeneration must not change billing/usage semantics without spec diffs.
83
+
84
+ ## PII & Settings
85
+ - Mark PII (user emails, names) for redaction; keep settings scoped to org/member.
86
+ - Avoid leaking secrets/config in markdown/JSON presentations.
87
+
88
+ ## Verification
89
+ - Add fixtures for usage recording and role changes.
90
+ - Ensure Audit/Notifications remain wired for invites/project updates.
91
+ - Use Feature Flags for new settings/billing fields; default safe/off.`
92
+ }
93
+ ];
94
+ registerDocBlocks(saasBoilerplateDocBlocks);
@@ -1 +1,2 @@
1
- export { };
1
+ export {};
2
+ //# sourceMappingURL=saas-boilerplate.docblock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"saas-boilerplate.docblock.d.ts","sourceRoot":"","sources":["../../src/docs/saas-boilerplate.docblock.ts"],"names":[],"mappings":""}
@@ -1,16 +1,16 @@
1
+ // @bun
2
+ // src/docs/saas-boilerplate.docblock.ts
1
3
  import { registerDocBlocks } from "@contractspec/lib.contracts/docs";
2
-
3
- //#region src/docs/saas-boilerplate.docblock.ts
4
- registerDocBlocks([
5
- {
6
- id: "docs.examples.saas-boilerplate.goal",
7
- title: "SaaS Boilerplate — Goal",
8
- summary: "Multi-tenant SaaS foundation with orgs, members, projects, settings, and usage.",
9
- kind: "goal",
10
- visibility: "public",
11
- route: "/docs/examples/saas-boilerplate/goal",
12
- tags: ["saas", "goal"],
13
- body: `## Why it matters
4
+ var saasBoilerplateDocBlocks = [
5
+ {
6
+ id: "docs.examples.saas-boilerplate.goal",
7
+ title: "SaaS Boilerplate \u2014 Goal",
8
+ summary: "Multi-tenant SaaS foundation with orgs, members, projects, settings, and usage.",
9
+ kind: "goal",
10
+ visibility: "public",
11
+ route: "/docs/examples/saas-boilerplate/goal",
12
+ tags: ["saas", "goal"],
13
+ body: `## Why it matters
14
14
  - Provides a regenerable SaaS base: orgs, members, projects, settings, usage/billing.
15
15
  - Avoids drift across identity, settings, and usage capture.
16
16
 
@@ -21,16 +21,16 @@ registerDocBlocks([
21
21
  ## Success criteria
22
22
  - Spec changes to org/project/settings/usage regenerate UI/API/events cleanly.
23
23
  - Tenant isolation and RBAC stay enforced; usage data is captured with PII scopes.`
24
- },
25
- {
26
- id: "docs.examples.saas-boilerplate.usage",
27
- title: "SaaS Boilerplate Usage",
28
- summary: "How to seed, extend, and regenerate the SaaS base.",
29
- kind: "usage",
30
- visibility: "public",
31
- route: "/docs/examples/saas-boilerplate/usage",
32
- tags: ["saas", "usage"],
33
- body: `## Setup
24
+ },
25
+ {
26
+ id: "docs.examples.saas-boilerplate.usage",
27
+ title: "SaaS Boilerplate \u2014 Usage",
28
+ summary: "How to seed, extend, and regenerate the SaaS base.",
29
+ kind: "usage",
30
+ visibility: "public",
31
+ route: "/docs/examples/saas-boilerplate/usage",
32
+ tags: ["saas", "usage"],
33
+ body: `## Setup
34
34
  1) Seed (if available) or create orgs, members, and projects via UI.
35
35
  2) Configure Notifications for invites and project events; set policy.pii for sensitive fields.
36
36
 
@@ -43,16 +43,16 @@ registerDocBlocks([
43
43
  - Keep tenant/role context explicit in contracts and presentations.
44
44
  - Emit events for invites, project changes, and usage records; log in Audit Trail.
45
45
  - Redact sensitive user/org data in markdown/JSON outputs.`
46
- },
47
- {
48
- id: "docs.examples.saas-boilerplate.reference",
49
- title: "SaaS Boilerplate Reference",
50
- summary: "Entities, contracts, events, and presentations for the SaaS starter.",
51
- kind: "reference",
52
- visibility: "public",
53
- route: "/docs/examples/saas-boilerplate",
54
- tags: ["saas", "reference"],
55
- body: `## Entities
46
+ },
47
+ {
48
+ id: "docs.examples.saas-boilerplate.reference",
49
+ title: "SaaS Boilerplate \u2014 Reference",
50
+ summary: "Entities, contracts, events, and presentations for the SaaS starter.",
51
+ kind: "reference",
52
+ visibility: "public",
53
+ route: "/docs/examples/saas-boilerplate",
54
+ tags: ["saas", "reference"],
55
+ body: `## Entities
56
56
  - Organization, Member, Role, Project, AppSettings, UserSettings, BillingUsage.
57
57
 
58
58
  ## Contracts
@@ -67,20 +67,16 @@ registerDocBlocks([
67
67
  ## Notes
68
68
  - Tenant isolation is mandatory; enforce via RBAC/policies.
69
69
  - Usage/Metering drives billing/limits; keep units explicit.`
70
- },
71
- {
72
- id: "docs.examples.saas-boilerplate.constraints",
73
- title: "SaaS Boilerplate Constraints & Safety",
74
- summary: "Internal guardrails for tenancy, RBAC, usage metering, and regeneration.",
75
- kind: "reference",
76
- visibility: "internal",
77
- route: "/docs/examples/saas-boilerplate/constraints",
78
- tags: [
79
- "saas",
80
- "constraints",
81
- "internal"
82
- ],
83
- body: `## Constraints
70
+ },
71
+ {
72
+ id: "docs.examples.saas-boilerplate.constraints",
73
+ title: "SaaS Boilerplate \u2014 Constraints & Safety",
74
+ summary: "Internal guardrails for tenancy, RBAC, usage metering, and regeneration.",
75
+ kind: "reference",
76
+ visibility: "internal",
77
+ route: "/docs/examples/saas-boilerplate/constraints",
78
+ tags: ["saas", "constraints", "internal"],
79
+ body: `## Constraints
84
80
  - Tenant isolation and RBAC must remain explicit in spec; no implicit defaults in code.
85
81
  - Events to emit: org.created, member.invited/accepted, project.created/updated, usage.recorded.
86
82
  - Regeneration must not change billing/usage semantics without spec diffs.
@@ -93,8 +89,6 @@ registerDocBlocks([
93
89
  - Add fixtures for usage recording and role changes.
94
90
  - Ensure Audit/Notifications remain wired for invites/project updates.
95
91
  - Use Feature Flags for new settings/billing fields; default safe/off.`
96
- }
97
- ]);
98
-
99
- //#endregion
100
- //# sourceMappingURL=saas-boilerplate.docblock.js.map
92
+ }
93
+ ];
94
+ registerDocBlocks(saasBoilerplateDocBlocks);
package/dist/example.d.ts CHANGED
@@ -1,7 +1,3 @@
1
- import * as _contractspec_lib_contracts0 from "@contractspec/lib.contracts";
2
-
3
- //#region src/example.d.ts
4
- declare const example: _contractspec_lib_contracts0.ExampleSpec;
5
- //#endregion
6
- export { example as default };
1
+ declare const example: import("@contractspec/lib.contracts").ExampleSpec;
2
+ export default example;
7
3
  //# sourceMappingURL=example.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"example.d.ts","names":[],"sources":["../src/example.ts"],"mappings":";;;cAEM,OAAA,EAiCJ,4BAAA,CAjCW,WAAA"}
1
+ {"version":3,"file":"example.d.ts","sourceRoot":"","sources":["../src/example.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,OAAO,mDAiCX,CAAC;AAEH,eAAe,OAAO,CAAC"}
package/dist/example.js CHANGED
@@ -1,52 +1,40 @@
1
+ // @bun
2
+ // src/example.ts
1
3
  import { defineExample } from "@contractspec/lib.contracts";
2
-
3
- //#region src/example.ts
4
- const example = defineExample({
5
- meta: {
6
- key: "saas-boilerplate",
7
- version: "1.0.0",
8
- title: "SaaS Boilerplate",
9
- description: "Multi-tenant SaaS foundation with orgs, projects, settings, billing usage, and RBAC.",
10
- kind: "template",
11
- visibility: "public",
12
- stability: "experimental",
13
- owners: ["@platform.core"],
14
- tags: [
15
- "saas",
16
- "multi-tenant",
17
- "billing",
18
- "rbac"
19
- ]
20
- },
21
- docs: { rootDocId: "docs.examples.saas-boilerplate" },
22
- entrypoints: {
23
- packageName: "@contractspec/example.saas-boilerplate",
24
- feature: "./feature",
25
- contracts: "./contracts",
26
- presentations: "./presentations",
27
- handlers: "./handlers",
28
- docs: "./docs"
29
- },
30
- surfaces: {
31
- templates: true,
32
- sandbox: {
33
- enabled: true,
34
- modes: [
35
- "playground",
36
- "specs",
37
- "builder",
38
- "markdown",
39
- "evolution"
40
- ]
41
- },
42
- studio: {
43
- enabled: true,
44
- installable: true
45
- },
46
- mcp: { enabled: true }
47
- }
4
+ var example = defineExample({
5
+ meta: {
6
+ key: "saas-boilerplate",
7
+ version: "1.0.0",
8
+ title: "SaaS Boilerplate",
9
+ description: "Multi-tenant SaaS foundation with orgs, projects, settings, billing usage, and RBAC.",
10
+ kind: "template",
11
+ visibility: "public",
12
+ stability: "experimental",
13
+ owners: ["@platform.core"],
14
+ tags: ["saas", "multi-tenant", "billing", "rbac"]
15
+ },
16
+ docs: {
17
+ rootDocId: "docs.examples.saas-boilerplate"
18
+ },
19
+ entrypoints: {
20
+ packageName: "@contractspec/example.saas-boilerplate",
21
+ feature: "./feature",
22
+ contracts: "./contracts",
23
+ presentations: "./presentations",
24
+ handlers: "./handlers",
25
+ docs: "./docs"
26
+ },
27
+ surfaces: {
28
+ templates: true,
29
+ sandbox: {
30
+ enabled: true,
31
+ modes: ["playground", "specs", "builder", "markdown", "evolution"]
32
+ },
33
+ studio: { enabled: true, installable: true },
34
+ mcp: { enabled: true }
35
+ }
48
36
  });
49
-
50
- //#endregion
51
- export { example as default };
52
- //# sourceMappingURL=example.js.map
37
+ var example_default = example;
38
+ export {
39
+ example_default as default
40
+ };
@@ -1,4 +1,7 @@
1
- import { mockCheckFeatureAccessHandler, mockGetSubscriptionHandler, mockGetUsageSummaryHandler, mockRecordUsageHandler } from "../billing/billing.handler.js";
2
- import { mockCreateProjectHandler, mockDeleteProjectHandler, mockGetProjectHandler, mockListProjectsHandler, mockUpdateProjectHandler } from "../project/project.handler.js";
3
- import { CreateProjectInput, ListProjectsInput, ListProjectsOutput, Project, SaasHandlers, Subscription, UpdateProjectInput, createSaasHandlers } from "./saas.handlers.js";
4
- export { CreateProjectInput, ListProjectsInput, ListProjectsOutput, Project, SaasHandlers, Subscription, UpdateProjectInput, createSaasHandlers, mockCheckFeatureAccessHandler, mockCreateProjectHandler, mockDeleteProjectHandler, mockGetProjectHandler, mockGetSubscriptionHandler, mockGetUsageSummaryHandler, mockListProjectsHandler, mockRecordUsageHandler, mockUpdateProjectHandler };
1
+ /**
2
+ * SaaS Boilerplate Handlers - re-exports from domain modules for backward compatibility.
3
+ */
4
+ export { mockGetSubscriptionHandler, mockRecordUsageHandler, mockGetUsageSummaryHandler, mockCheckFeatureAccessHandler, } from '../billing/billing.handler';
5
+ export { mockCreateProjectHandler, mockGetProjectHandler, mockListProjectsHandler, mockUpdateProjectHandler, mockDeleteProjectHandler, } from '../project/project.handler';
6
+ export * from './saas.handlers';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,0BAA0B,EAC1B,6BAA6B,GAC9B,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,4BAA4B,CAAC;AAGpC,cAAc,iBAAiB,CAAC"}