@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,165 +1,104 @@
1
- import { defineEvent } from "@contractspec/lib.contracts";
1
+ // @bun
2
+ // src/project/project.event.ts
2
3
  import { ScalarTypeEnum, defineSchemaModel } from "@contractspec/lib.schema";
3
-
4
- //#region src/project/project.event.ts
5
- /**
6
- * Payload when a project is created.
7
- */
8
- const ProjectCreatedPayload = defineSchemaModel({
9
- name: "ProjectCreatedPayload",
10
- description: "Payload when a project is created",
11
- fields: {
12
- projectId: {
13
- type: ScalarTypeEnum.String_unsecure(),
14
- isOptional: false
15
- },
16
- name: {
17
- type: ScalarTypeEnum.String_unsecure(),
18
- isOptional: false
19
- },
20
- organizationId: {
21
- type: ScalarTypeEnum.String_unsecure(),
22
- isOptional: false
23
- },
24
- createdBy: {
25
- type: ScalarTypeEnum.String_unsecure(),
26
- isOptional: false
27
- },
28
- createdAt: {
29
- type: ScalarTypeEnum.DateTime(),
30
- isOptional: false
31
- }
32
- }
4
+ import { defineEvent } from "@contractspec/lib.contracts";
5
+ var ProjectCreatedPayload = defineSchemaModel({
6
+ name: "ProjectCreatedPayload",
7
+ description: "Payload when a project is created",
8
+ fields: {
9
+ projectId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
10
+ name: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
11
+ organizationId: {
12
+ type: ScalarTypeEnum.String_unsecure(),
13
+ isOptional: false
14
+ },
15
+ createdBy: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
16
+ createdAt: { type: ScalarTypeEnum.DateTime(), isOptional: false }
17
+ }
33
18
  });
34
- /**
35
- * Payload when a project is updated.
36
- */
37
- const ProjectUpdatedPayload = defineSchemaModel({
38
- name: "ProjectUpdatedPayload",
39
- description: "Payload when a project is updated",
40
- fields: {
41
- projectId: {
42
- type: ScalarTypeEnum.String_unsecure(),
43
- isOptional: false
44
- },
45
- updatedFields: {
46
- type: ScalarTypeEnum.String_unsecure(),
47
- isArray: true,
48
- isOptional: false
49
- },
50
- updatedBy: {
51
- type: ScalarTypeEnum.String_unsecure(),
52
- isOptional: false
53
- },
54
- updatedAt: {
55
- type: ScalarTypeEnum.DateTime(),
56
- isOptional: false
57
- }
58
- }
19
+ var ProjectUpdatedPayload = defineSchemaModel({
20
+ name: "ProjectUpdatedPayload",
21
+ description: "Payload when a project is updated",
22
+ fields: {
23
+ projectId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
24
+ updatedFields: {
25
+ type: ScalarTypeEnum.String_unsecure(),
26
+ isArray: true,
27
+ isOptional: false
28
+ },
29
+ updatedBy: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
30
+ updatedAt: { type: ScalarTypeEnum.DateTime(), isOptional: false }
31
+ }
59
32
  });
60
- /**
61
- * Payload when a project is deleted.
62
- */
63
- const ProjectDeletedPayload = defineSchemaModel({
64
- name: "ProjectDeletedPayload",
65
- description: "Payload when a project is deleted",
66
- fields: {
67
- projectId: {
68
- type: ScalarTypeEnum.String_unsecure(),
69
- isOptional: false
70
- },
71
- organizationId: {
72
- type: ScalarTypeEnum.String_unsecure(),
73
- isOptional: false
74
- },
75
- deletedBy: {
76
- type: ScalarTypeEnum.String_unsecure(),
77
- isOptional: false
78
- },
79
- deletedAt: {
80
- type: ScalarTypeEnum.DateTime(),
81
- isOptional: false
82
- }
83
- }
33
+ var ProjectDeletedPayload = defineSchemaModel({
34
+ name: "ProjectDeletedPayload",
35
+ description: "Payload when a project is deleted",
36
+ fields: {
37
+ projectId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
38
+ organizationId: {
39
+ type: ScalarTypeEnum.String_unsecure(),
40
+ isOptional: false
41
+ },
42
+ deletedBy: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
43
+ deletedAt: { type: ScalarTypeEnum.DateTime(), isOptional: false }
44
+ }
84
45
  });
85
- /**
86
- * Payload when a project is archived.
87
- */
88
- const ProjectArchivedPayload = defineSchemaModel({
89
- name: "ProjectArchivedPayload",
90
- description: "Payload when a project is archived",
91
- fields: {
92
- projectId: {
93
- type: ScalarTypeEnum.String_unsecure(),
94
- isOptional: false
95
- },
96
- archivedBy: {
97
- type: ScalarTypeEnum.String_unsecure(),
98
- isOptional: false
99
- },
100
- archivedAt: {
101
- type: ScalarTypeEnum.DateTime(),
102
- isOptional: false
103
- }
104
- }
46
+ var ProjectArchivedPayload = defineSchemaModel({
47
+ name: "ProjectArchivedPayload",
48
+ description: "Payload when a project is archived",
49
+ fields: {
50
+ projectId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
51
+ archivedBy: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
52
+ archivedAt: { type: ScalarTypeEnum.DateTime(), isOptional: false }
53
+ }
105
54
  });
106
- /**
107
- * Event: A new project has been created.
108
- */
109
- const ProjectCreatedEvent = defineEvent({
110
- meta: {
111
- key: "project.created",
112
- version: "1.0.0",
113
- description: "A new project has been created.",
114
- stability: "stable",
115
- owners: ["@saas-team"],
116
- tags: ["project", "created"]
117
- },
118
- payload: ProjectCreatedPayload
55
+ var ProjectCreatedEvent = defineEvent({
56
+ meta: {
57
+ key: "project.created",
58
+ version: "1.0.0",
59
+ description: "A new project has been created.",
60
+ stability: "stable",
61
+ owners: ["@saas-team"],
62
+ tags: ["project", "created"]
63
+ },
64
+ payload: ProjectCreatedPayload
119
65
  });
120
- /**
121
- * Event: A project has been updated.
122
- */
123
- const ProjectUpdatedEvent = defineEvent({
124
- meta: {
125
- key: "project.updated",
126
- version: "1.0.0",
127
- description: "A project has been updated.",
128
- stability: "stable",
129
- owners: ["@saas-team"],
130
- tags: ["project", "updated"]
131
- },
132
- payload: ProjectUpdatedPayload
66
+ var ProjectUpdatedEvent = defineEvent({
67
+ meta: {
68
+ key: "project.updated",
69
+ version: "1.0.0",
70
+ description: "A project has been updated.",
71
+ stability: "stable",
72
+ owners: ["@saas-team"],
73
+ tags: ["project", "updated"]
74
+ },
75
+ payload: ProjectUpdatedPayload
133
76
  });
134
- /**
135
- * Event: A project has been deleted.
136
- */
137
- const ProjectDeletedEvent = defineEvent({
138
- meta: {
139
- key: "project.deleted",
140
- version: "1.0.0",
141
- description: "A project has been deleted.",
142
- stability: "stable",
143
- owners: ["@saas-team"],
144
- tags: ["project", "deleted"]
145
- },
146
- payload: ProjectDeletedPayload
77
+ var ProjectDeletedEvent = defineEvent({
78
+ meta: {
79
+ key: "project.deleted",
80
+ version: "1.0.0",
81
+ description: "A project has been deleted.",
82
+ stability: "stable",
83
+ owners: ["@saas-team"],
84
+ tags: ["project", "deleted"]
85
+ },
86
+ payload: ProjectDeletedPayload
147
87
  });
148
- /**
149
- * Event: A project has been archived.
150
- */
151
- const ProjectArchivedEvent = defineEvent({
152
- meta: {
153
- key: "project.archived",
154
- version: "1.0.0",
155
- description: "A project has been archived.",
156
- stability: "stable",
157
- owners: ["@saas-team"],
158
- tags: ["project", "archived"]
159
- },
160
- payload: ProjectArchivedPayload
88
+ var ProjectArchivedEvent = defineEvent({
89
+ meta: {
90
+ key: "project.archived",
91
+ version: "1.0.0",
92
+ description: "A project has been archived.",
93
+ stability: "stable",
94
+ owners: ["@saas-team"],
95
+ tags: ["project", "archived"]
96
+ },
97
+ payload: ProjectArchivedPayload
161
98
  });
162
-
163
- //#endregion
164
- export { ProjectArchivedEvent, ProjectCreatedEvent, ProjectDeletedEvent, ProjectUpdatedEvent };
165
- //# sourceMappingURL=project.event.js.map
99
+ export {
100
+ ProjectUpdatedEvent,
101
+ ProjectDeletedEvent,
102
+ ProjectCreatedEvent,
103
+ ProjectArchivedEvent
104
+ };
@@ -1,72 +1,69 @@
1
- //#region src/project/project.handler.d.ts
2
- interface Project {
3
- id: string;
4
- name: string;
5
- description?: string;
6
- slug?: string;
7
- organizationId: string;
8
- createdBy: string;
9
- status: 'DRAFT' | 'ACTIVE' | 'ARCHIVED' | 'DELETED';
10
- isPublic: boolean;
11
- tags: string[];
12
- createdAt: Date;
13
- updatedAt: Date;
1
+ export interface Project {
2
+ id: string;
3
+ name: string;
4
+ description?: string;
5
+ slug?: string;
6
+ organizationId: string;
7
+ createdBy: string;
8
+ status: 'DRAFT' | 'ACTIVE' | 'ARCHIVED' | 'DELETED';
9
+ isPublic: boolean;
10
+ tags: string[];
11
+ createdAt: Date;
12
+ updatedAt: Date;
14
13
  }
15
- interface CreateProjectInput {
16
- name: string;
17
- description?: string;
18
- slug?: string;
19
- isPublic?: boolean;
20
- tags?: string[];
14
+ export interface CreateProjectInput {
15
+ name: string;
16
+ description?: string;
17
+ slug?: string;
18
+ isPublic?: boolean;
19
+ tags?: string[];
21
20
  }
22
- interface UpdateProjectInput {
23
- projectId: string;
24
- name?: string;
25
- description?: string;
26
- slug?: string;
27
- isPublic?: boolean;
28
- tags?: string[];
29
- status?: 'DRAFT' | 'ACTIVE' | 'ARCHIVED' | 'DELETED';
21
+ export interface UpdateProjectInput {
22
+ projectId: string;
23
+ name?: string;
24
+ description?: string;
25
+ slug?: string;
26
+ isPublic?: boolean;
27
+ tags?: string[];
28
+ status?: 'DRAFT' | 'ACTIVE' | 'ARCHIVED' | 'DELETED';
30
29
  }
31
- interface ListProjectsInput {
32
- status?: 'DRAFT' | 'ACTIVE' | 'ARCHIVED' | 'all';
33
- search?: string;
34
- limit?: number;
35
- offset?: number;
30
+ export interface ListProjectsInput {
31
+ status?: 'DRAFT' | 'ACTIVE' | 'ARCHIVED' | 'all';
32
+ search?: string;
33
+ limit?: number;
34
+ offset?: number;
36
35
  }
37
- interface ListProjectsOutput {
38
- projects: Project[];
39
- total: number;
36
+ export interface ListProjectsOutput {
37
+ projects: Project[];
38
+ total: number;
40
39
  }
41
40
  /**
42
41
  * Mock handler for ListProjectsContract.
43
42
  */
44
- declare function mockListProjectsHandler(input: ListProjectsInput): Promise<ListProjectsOutput>;
43
+ export declare function mockListProjectsHandler(input: ListProjectsInput): Promise<ListProjectsOutput>;
45
44
  /**
46
45
  * Mock handler for GetProjectContract.
47
46
  */
48
- declare function mockGetProjectHandler(input: {
49
- projectId: string;
47
+ export declare function mockGetProjectHandler(input: {
48
+ projectId: string;
50
49
  }): Promise<Project>;
51
50
  /**
52
51
  * Mock handler for CreateProjectContract.
53
52
  */
54
- declare function mockCreateProjectHandler(input: CreateProjectInput, context: {
55
- organizationId: string;
56
- userId: string;
53
+ export declare function mockCreateProjectHandler(input: CreateProjectInput, context: {
54
+ organizationId: string;
55
+ userId: string;
57
56
  }): Promise<Project>;
58
57
  /**
59
58
  * Mock handler for UpdateProjectContract.
60
59
  */
61
- declare function mockUpdateProjectHandler(input: UpdateProjectInput): Promise<Project>;
60
+ export declare function mockUpdateProjectHandler(input: UpdateProjectInput): Promise<Project>;
62
61
  /**
63
62
  * Mock handler for DeleteProjectContract.
64
63
  */
65
- declare function mockDeleteProjectHandler(input: {
66
- projectId: string;
64
+ export declare function mockDeleteProjectHandler(input: {
65
+ projectId: string;
67
66
  }): Promise<{
68
- success: boolean;
67
+ success: boolean;
69
68
  }>;
70
- //#endregion
71
- export { CreateProjectInput, ListProjectsInput, ListProjectsOutput, Project, UpdateProjectInput, mockCreateProjectHandler, mockDeleteProjectHandler, mockGetProjectHandler, mockListProjectsHandler, mockUpdateProjectHandler };
72
69
  //# sourceMappingURL=project.handler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"project.handler.d.ts","names":[],"sources":["../../src/project/project.handler.ts"],"mappings":";UAMiB,OAAA;EACf,EAAA;EACA,IAAA;EACA,WAAA;EACA,IAAA;EACA,cAAA;EACA,SAAA;EACA,MAAA;EACA,QAAA;EACA,IAAA;EACA,SAAA,EAAW,IAAA;EACX,SAAA,EAAW,IAAA;AAAA;AAAA,UAGI,kBAAA;EACf,IAAA;EACA,WAAA;EACA,IAAA;EACA,QAAA;EACA,IAAA;AAAA;AAAA,UAGe,kBAAA;EACf,SAAA;EACA,IAAA;EACA,WAAA;EACA,IAAA;EACA,QAAA;EACA,IAAA;EACA,MAAA;AAAA;AAAA,UAGe,iBAAA;EACf,MAAA;EACA,MAAA;EACA,KAAA;EACA,MAAA;AAAA;AAAA,UAGe,kBAAA;EACf,QAAA,EAAU,OAAA;EACV,KAAA;AAAA;;;;iBAMoB,uBAAA,CACpB,KAAA,EAAO,iBAAA,GACN,OAAA,CAAQ,kBAAA;;AAjBX;;iBAkDsB,qBAAA,CAAsB,KAAA;EAC1C,SAAA;AAAA,IACE,OAAA,CAAQ,OAAA;;;;iBAaU,wBAAA,CACpB,KAAA,EAAO,kBAAA,EACP,OAAA;EAAW,cAAA;EAAwB,MAAA;AAAA,IAClC,OAAA,CAAQ,OAAA;;;;iBA2BW,wBAAA,CACpB,KAAA,EAAO,kBAAA,GACN,OAAA,CAAQ,OAAA;;;;iBAsBW,wBAAA,CAAyB,KAAA;EAC7C,SAAA;AAAA,IACE,OAAA;EAAU,OAAA;AAAA"}
1
+ {"version":3,"file":"project.handler.d.ts","sourceRoot":"","sources":["../../src/project/project.handler.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;IACpD,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;CACtD;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,KAAK,CAAC;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,kBAAkB,CAAC,CA4B7B;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,KAAK,EAAE;IACjD,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,OAAO,CAAC,CAQnB;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAClD,OAAO,CAAC,OAAO,CAAC,CAsBlB;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,OAAO,CAAC,CAiBlB;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,KAAK,EAAE;IACpD,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAQhC"}
@@ -1,82 +1,179 @@
1
- import { MOCK_PROJECTS } from "../shared/mock-data.js";
1
+ // @bun
2
+ // src/shared/mock-data.ts
3
+ var MOCK_PROJECTS = [
4
+ {
5
+ id: "proj-1",
6
+ name: "Marketing Website",
7
+ description: "Main company website redesign project",
8
+ slug: "marketing-website",
9
+ organizationId: "demo-org",
10
+ createdBy: "user-1",
11
+ status: "ACTIVE",
12
+ isPublic: false,
13
+ tags: ["marketing", "website", "redesign"],
14
+ createdAt: new Date("2024-01-15T10:00:00Z"),
15
+ updatedAt: new Date("2024-03-20T14:30:00Z")
16
+ },
17
+ {
18
+ id: "proj-2",
19
+ name: "Mobile App v2",
20
+ description: "Next generation mobile application",
21
+ slug: "mobile-app-v2",
22
+ organizationId: "demo-org",
23
+ createdBy: "user-2",
24
+ status: "ACTIVE",
25
+ isPublic: false,
26
+ tags: ["mobile", "app", "v2"],
27
+ createdAt: new Date("2024-02-01T09:00:00Z"),
28
+ updatedAt: new Date("2024-04-05T11:15:00Z")
29
+ },
30
+ {
31
+ id: "proj-3",
32
+ name: "API Integration",
33
+ description: "Third-party API integration project",
34
+ slug: "api-integration",
35
+ organizationId: "demo-org",
36
+ createdBy: "user-1",
37
+ status: "DRAFT",
38
+ isPublic: false,
39
+ tags: ["api", "integration"],
40
+ createdAt: new Date("2024-03-10T08:00:00Z"),
41
+ updatedAt: new Date("2024-03-10T08:00:00Z")
42
+ },
43
+ {
44
+ id: "proj-4",
45
+ name: "Analytics Dashboard",
46
+ description: "Internal analytics and reporting dashboard",
47
+ slug: "analytics-dashboard",
48
+ organizationId: "demo-org",
49
+ createdBy: "user-3",
50
+ status: "ARCHIVED",
51
+ isPublic: true,
52
+ tags: ["analytics", "dashboard", "reporting"],
53
+ createdAt: new Date("2023-10-01T12:00:00Z"),
54
+ updatedAt: new Date("2024-02-28T16:45:00Z")
55
+ }
56
+ ];
57
+ var MOCK_SUBSCRIPTION = {
58
+ id: "sub-1",
59
+ organizationId: "demo-org",
60
+ planId: "pro",
61
+ planName: "Professional",
62
+ status: "ACTIVE",
63
+ currentPeriodStart: new Date("2024-04-01T00:00:00Z"),
64
+ currentPeriodEnd: new Date("2024-05-01T00:00:00Z"),
65
+ limits: {
66
+ projects: 25,
67
+ users: 10,
68
+ storage: 50,
69
+ apiCalls: 1e5
70
+ },
71
+ usage: {
72
+ projects: 4,
73
+ users: 5,
74
+ storage: 12.5,
75
+ apiCalls: 45230
76
+ }
77
+ };
78
+ var MOCK_USAGE_SUMMARY = {
79
+ organizationId: "demo-org",
80
+ period: "current_month",
81
+ apiCalls: {
82
+ total: 45230,
83
+ limit: 1e5,
84
+ percentUsed: 45.23
85
+ },
86
+ storage: {
87
+ totalGb: 12.5,
88
+ limitGb: 50,
89
+ percentUsed: 25
90
+ },
91
+ activeProjects: 4,
92
+ activeUsers: 5,
93
+ breakdown: [
94
+ { date: "2024-04-01", apiCalls: 3200, storageGb: 12.1 },
95
+ { date: "2024-04-02", apiCalls: 2800, storageGb: 12.2 },
96
+ { date: "2024-04-03", apiCalls: 4100, storageGb: 12.3 },
97
+ { date: "2024-04-04", apiCalls: 3600, storageGb: 12.4 },
98
+ { date: "2024-04-05", apiCalls: 3800, storageGb: 12.5 }
99
+ ]
100
+ };
2
101
 
3
- //#region src/project/project.handler.ts
4
- /**
5
- * Mock handlers for Project contracts.
6
- */
7
- /**
8
- * Mock handler for ListProjectsContract.
9
- */
102
+ // src/project/project.handler.ts
10
103
  async function mockListProjectsHandler(input) {
11
- const { status, search, limit = 20, offset = 0 } = input;
12
- let filtered = [...MOCK_PROJECTS];
13
- if (status && status !== "all") filtered = filtered.filter((p) => p.status === status);
14
- if (search) {
15
- const q = search.toLowerCase();
16
- filtered = filtered.filter((p) => p.name.toLowerCase().includes(q) || p.description?.toLowerCase().includes(q) || p.tags.some((t) => t.toLowerCase().includes(q)));
17
- }
18
- filtered.sort((a, b) => b.updatedAt.getTime() - a.updatedAt.getTime());
19
- const total = filtered.length;
20
- return {
21
- projects: filtered.slice(offset, offset + limit),
22
- total
23
- };
104
+ const { status, search, limit = 20, offset = 0 } = input;
105
+ let filtered = [...MOCK_PROJECTS];
106
+ if (status && status !== "all") {
107
+ filtered = filtered.filter((p) => p.status === status);
108
+ }
109
+ if (search) {
110
+ const q = search.toLowerCase();
111
+ filtered = filtered.filter((p) => p.name.toLowerCase().includes(q) || p.description?.toLowerCase().includes(q) || p.tags.some((t) => t.toLowerCase().includes(q)));
112
+ }
113
+ filtered.sort((a, b) => b.updatedAt.getTime() - a.updatedAt.getTime());
114
+ const total = filtered.length;
115
+ const projects = filtered.slice(offset, offset + limit);
116
+ return {
117
+ projects,
118
+ total
119
+ };
24
120
  }
25
- /**
26
- * Mock handler for GetProjectContract.
27
- */
28
121
  async function mockGetProjectHandler(input) {
29
- const project = MOCK_PROJECTS.find((p) => p.id === input.projectId);
30
- if (!project) throw new Error("NOT_FOUND");
31
- return project;
122
+ const project = MOCK_PROJECTS.find((p) => p.id === input.projectId);
123
+ if (!project) {
124
+ throw new Error("NOT_FOUND");
125
+ }
126
+ return project;
32
127
  }
33
- /**
34
- * Mock handler for CreateProjectContract.
35
- */
36
128
  async function mockCreateProjectHandler(input, context) {
37
- if (input.slug) {
38
- if (MOCK_PROJECTS.some((p) => p.slug === input.slug)) throw new Error("SLUG_EXISTS");
39
- }
40
- const now = /* @__PURE__ */ new Date();
41
- return {
42
- id: `proj-${Date.now()}`,
43
- name: input.name,
44
- description: input.description,
45
- slug: input.slug ?? input.name.toLowerCase().replace(/\s+/g, "-"),
46
- organizationId: context.organizationId,
47
- createdBy: context.userId,
48
- status: "DRAFT",
49
- isPublic: input.isPublic ?? false,
50
- tags: input.tags ?? [],
51
- createdAt: now,
52
- updatedAt: now
53
- };
129
+ if (input.slug) {
130
+ const exists = MOCK_PROJECTS.some((p) => p.slug === input.slug);
131
+ if (exists) {
132
+ throw new Error("SLUG_EXISTS");
133
+ }
134
+ }
135
+ const now = new Date;
136
+ return {
137
+ id: `proj-${Date.now()}`,
138
+ name: input.name,
139
+ description: input.description,
140
+ slug: input.slug ?? input.name.toLowerCase().replace(/\s+/g, "-"),
141
+ organizationId: context.organizationId,
142
+ createdBy: context.userId,
143
+ status: "DRAFT",
144
+ isPublic: input.isPublic ?? false,
145
+ tags: input.tags ?? [],
146
+ createdAt: now,
147
+ updatedAt: now
148
+ };
54
149
  }
55
- /**
56
- * Mock handler for UpdateProjectContract.
57
- */
58
150
  async function mockUpdateProjectHandler(input) {
59
- const project = MOCK_PROJECTS.find((p) => p.id === input.projectId);
60
- if (!project) throw new Error("NOT_FOUND");
61
- return {
62
- ...project,
63
- name: input.name ?? project.name,
64
- description: input.description ?? project.description,
65
- slug: input.slug ?? project.slug,
66
- isPublic: input.isPublic ?? project.isPublic,
67
- tags: input.tags ?? project.tags,
68
- status: input.status ?? project.status,
69
- updatedAt: /* @__PURE__ */ new Date()
70
- };
151
+ const project = MOCK_PROJECTS.find((p) => p.id === input.projectId);
152
+ if (!project) {
153
+ throw new Error("NOT_FOUND");
154
+ }
155
+ return {
156
+ ...project,
157
+ name: input.name ?? project.name,
158
+ description: input.description ?? project.description,
159
+ slug: input.slug ?? project.slug,
160
+ isPublic: input.isPublic ?? project.isPublic,
161
+ tags: input.tags ?? project.tags,
162
+ status: input.status ?? project.status,
163
+ updatedAt: new Date
164
+ };
71
165
  }
72
- /**
73
- * Mock handler for DeleteProjectContract.
74
- */
75
166
  async function mockDeleteProjectHandler(input) {
76
- if (!MOCK_PROJECTS.find((p) => p.id === input.projectId)) throw new Error("NOT_FOUND");
77
- return { success: true };
167
+ const project = MOCK_PROJECTS.find((p) => p.id === input.projectId);
168
+ if (!project) {
169
+ throw new Error("NOT_FOUND");
170
+ }
171
+ return { success: true };
78
172
  }
79
-
80
- //#endregion
81
- export { mockCreateProjectHandler, mockDeleteProjectHandler, mockGetProjectHandler, mockListProjectsHandler, mockUpdateProjectHandler };
82
- //# sourceMappingURL=project.handler.js.map
173
+ export {
174
+ mockUpdateProjectHandler,
175
+ mockListProjectsHandler,
176
+ mockGetProjectHandler,
177
+ mockDeleteProjectHandler,
178
+ mockCreateProjectHandler
179
+ };