@contractspec/example.saas-boilerplate 3.8.9 → 3.8.10
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.
- package/.turbo/turbo-build.log +156 -156
- package/CHANGELOG.md +20 -0
- package/dist/billing/billing.entity.js +1 -113
- package/dist/billing/billing.enum.js +1 -19
- package/dist/billing/billing.event.js +1 -90
- package/dist/billing/billing.handler.js +1 -148
- package/dist/billing/billing.operations.js +1 -278
- package/dist/billing/billing.presentation.js +1 -55
- package/dist/billing/billing.schema.js +1 -121
- package/dist/billing/index.js +1 -691
- package/dist/browser/billing/billing.entity.js +1 -113
- package/dist/browser/billing/billing.enum.js +1 -19
- package/dist/browser/billing/billing.event.js +1 -90
- package/dist/browser/billing/billing.handler.js +1 -148
- package/dist/browser/billing/billing.operations.js +1 -278
- package/dist/browser/billing/billing.presentation.js +1 -55
- package/dist/browser/billing/billing.schema.js +1 -121
- package/dist/browser/billing/index.js +1 -691
- package/dist/browser/dashboard/dashboard.presentation.js +1 -55
- package/dist/browser/dashboard/index.js +1 -55
- package/dist/browser/docs/index.js +5 -49
- package/dist/browser/docs/saas-boilerplate.docblock.js +5 -49
- package/dist/browser/example.js +1 -39
- package/dist/browser/handlers/index.js +2 -358
- package/dist/browser/handlers/saas.handlers.js +2 -134
- package/dist/browser/index.js +9 -3591
- package/dist/browser/presentations/index.js +1 -299
- package/dist/browser/project/index.js +1 -793
- package/dist/browser/project/project.entity.js +1 -77
- package/dist/browser/project/project.enum.js +1 -18
- package/dist/browser/project/project.event.js +1 -103
- package/dist/browser/project/project.handler.js +1 -178
- package/dist/browser/project/project.operations.js +1 -372
- package/dist/browser/project/project.presentation.js +1 -180
- package/dist/browser/project/project.schema.js +1 -134
- package/dist/browser/saas-boilerplate.feature.js +1 -304
- package/dist/browser/seeders/index.js +2 -20
- package/dist/browser/settings/index.js +1 -75
- package/dist/browser/settings/settings.entity.js +1 -74
- package/dist/browser/settings/settings.enum.js +1 -11
- package/dist/browser/shared/mock-data.js +1 -104
- package/dist/browser/tests/operations.test-spec.js +1 -112
- package/dist/browser/ui/SaasDashboard.js +1 -1239
- package/dist/browser/ui/SaasDashboard.visualizations.js +1 -249
- package/dist/browser/ui/SaasProjectList.js +1 -162
- package/dist/browser/ui/SaasSettingsPanel.js +1 -145
- package/dist/browser/ui/hooks/index.js +1 -159
- package/dist/browser/ui/hooks/useProjectList.js +1 -66
- package/dist/browser/ui/hooks/useProjectMutations.js +1 -91
- package/dist/browser/ui/index.js +5 -2077
- package/dist/browser/ui/modals/CreateProjectModal.js +1 -153
- package/dist/browser/ui/modals/ProjectActionsModal.js +1 -335
- package/dist/browser/ui/modals/index.js +1 -487
- package/dist/browser/ui/overlays/demo-overlays.js +1 -61
- package/dist/browser/ui/overlays/index.js +1 -61
- package/dist/browser/ui/renderers/index.js +5 -901
- package/dist/browser/ui/renderers/project-list.markdown.js +5 -725
- package/dist/browser/ui/renderers/project-list.renderer.js +1 -177
- package/dist/browser/visualizations/catalog.js +1 -155
- package/dist/browser/visualizations/index.js +1 -217
- package/dist/browser/visualizations/selectors.js +1 -210
- package/dist/dashboard/dashboard.presentation.js +1 -55
- package/dist/dashboard/index.js +1 -55
- package/dist/docs/index.js +5 -49
- package/dist/docs/saas-boilerplate.docblock.js +5 -49
- package/dist/example.js +1 -39
- package/dist/handlers/index.js +2 -358
- package/dist/handlers/saas.handlers.js +2 -134
- package/dist/index.js +9 -3591
- package/dist/node/billing/billing.entity.js +1 -113
- package/dist/node/billing/billing.enum.js +1 -19
- package/dist/node/billing/billing.event.js +1 -90
- package/dist/node/billing/billing.handler.js +1 -148
- package/dist/node/billing/billing.operations.js +1 -278
- package/dist/node/billing/billing.presentation.js +1 -55
- package/dist/node/billing/billing.schema.js +1 -121
- package/dist/node/billing/index.js +1 -691
- package/dist/node/dashboard/dashboard.presentation.js +1 -55
- package/dist/node/dashboard/index.js +1 -55
- package/dist/node/docs/index.js +5 -49
- package/dist/node/docs/saas-boilerplate.docblock.js +5 -49
- package/dist/node/example.js +1 -39
- package/dist/node/handlers/index.js +2 -358
- package/dist/node/handlers/saas.handlers.js +2 -134
- package/dist/node/index.js +9 -3591
- package/dist/node/presentations/index.js +1 -299
- package/dist/node/project/index.js +1 -793
- package/dist/node/project/project.entity.js +1 -77
- package/dist/node/project/project.enum.js +1 -18
- package/dist/node/project/project.event.js +1 -103
- package/dist/node/project/project.handler.js +1 -178
- package/dist/node/project/project.operations.js +1 -372
- package/dist/node/project/project.presentation.js +1 -180
- package/dist/node/project/project.schema.js +1 -134
- package/dist/node/saas-boilerplate.feature.js +1 -304
- package/dist/node/seeders/index.js +2 -20
- package/dist/node/settings/index.js +1 -75
- package/dist/node/settings/settings.entity.js +1 -74
- package/dist/node/settings/settings.enum.js +1 -11
- package/dist/node/shared/mock-data.js +1 -104
- package/dist/node/tests/operations.test-spec.js +1 -112
- package/dist/node/ui/SaasDashboard.js +1 -1239
- package/dist/node/ui/SaasDashboard.visualizations.js +1 -249
- package/dist/node/ui/SaasProjectList.js +1 -162
- package/dist/node/ui/SaasSettingsPanel.js +1 -145
- package/dist/node/ui/hooks/index.js +1 -159
- package/dist/node/ui/hooks/useProjectList.js +1 -66
- package/dist/node/ui/hooks/useProjectMutations.js +1 -91
- package/dist/node/ui/index.js +5 -2077
- package/dist/node/ui/modals/CreateProjectModal.js +1 -153
- package/dist/node/ui/modals/ProjectActionsModal.js +1 -335
- package/dist/node/ui/modals/index.js +1 -487
- package/dist/node/ui/overlays/demo-overlays.js +1 -61
- package/dist/node/ui/overlays/index.js +1 -61
- package/dist/node/ui/renderers/index.js +5 -901
- package/dist/node/ui/renderers/project-list.markdown.js +5 -725
- package/dist/node/ui/renderers/project-list.renderer.js +1 -177
- package/dist/node/visualizations/catalog.js +1 -155
- package/dist/node/visualizations/index.js +1 -217
- package/dist/node/visualizations/selectors.js +1 -210
- package/dist/presentations/index.js +1 -299
- package/dist/project/index.js +1 -793
- package/dist/project/project.entity.js +1 -77
- package/dist/project/project.enum.js +1 -18
- package/dist/project/project.event.js +1 -103
- package/dist/project/project.handler.js +1 -178
- package/dist/project/project.operations.js +1 -372
- package/dist/project/project.presentation.js +1 -180
- package/dist/project/project.schema.js +1 -134
- package/dist/saas-boilerplate.feature.js +1 -304
- package/dist/seeders/index.js +2 -20
- package/dist/settings/index.js +1 -75
- package/dist/settings/settings.entity.js +1 -74
- package/dist/settings/settings.enum.js +1 -11
- package/dist/shared/mock-data.js +1 -104
- package/dist/tests/operations.test-spec.js +1 -112
- package/dist/ui/SaasDashboard.js +1 -1239
- package/dist/ui/SaasDashboard.visualizations.js +1 -249
- package/dist/ui/SaasProjectList.js +1 -162
- package/dist/ui/SaasSettingsPanel.js +1 -145
- package/dist/ui/hooks/index.js +1 -159
- package/dist/ui/hooks/useProjectList.js +1 -66
- package/dist/ui/hooks/useProjectMutations.js +1 -91
- package/dist/ui/index.js +5 -2077
- package/dist/ui/modals/CreateProjectModal.js +1 -153
- package/dist/ui/modals/ProjectActionsModal.js +1 -335
- package/dist/ui/modals/index.js +1 -487
- package/dist/ui/overlays/demo-overlays.js +1 -61
- package/dist/ui/overlays/index.js +1 -61
- package/dist/ui/renderers/index.js +5 -901
- package/dist/ui/renderers/project-list.markdown.js +5 -725
- package/dist/ui/renderers/project-list.renderer.js +1 -177
- package/dist/visualizations/catalog.js +1 -155
- package/dist/visualizations/index.js +1 -217
- package/dist/visualizations/selectors.js +1 -210
- package/package.json +12 -12
|
@@ -1,299 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
definePresentation,
|
|
4
|
-
StabilityEnum
|
|
5
|
-
} from "@contractspec/lib.contracts-spec";
|
|
6
|
-
var SubscriptionPresentation = definePresentation({
|
|
7
|
-
meta: {
|
|
8
|
-
key: "saas.billing.subscription",
|
|
9
|
-
version: "1.0.0",
|
|
10
|
-
title: "Subscription Status",
|
|
11
|
-
description: "Subscription status with plan info, limits, and current usage",
|
|
12
|
-
domain: "saas-boilerplate",
|
|
13
|
-
owners: ["@saas-team"],
|
|
14
|
-
tags: ["billing", "subscription"],
|
|
15
|
-
stability: StabilityEnum.Beta,
|
|
16
|
-
goal: "View subscription plan and status",
|
|
17
|
-
context: "Billing section"
|
|
18
|
-
},
|
|
19
|
-
source: {
|
|
20
|
-
type: "component",
|
|
21
|
-
framework: "react",
|
|
22
|
-
componentKey: "SubscriptionView"
|
|
23
|
-
},
|
|
24
|
-
targets: ["react", "markdown"],
|
|
25
|
-
policy: {
|
|
26
|
-
flags: ["saas.billing.enabled"]
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
var UsageDashboardPresentation = definePresentation({
|
|
30
|
-
meta: {
|
|
31
|
-
key: "saas.billing.usage",
|
|
32
|
-
version: "1.0.0",
|
|
33
|
-
title: "Usage Dashboard",
|
|
34
|
-
description: "Usage metrics and breakdown by resource type",
|
|
35
|
-
domain: "saas-boilerplate",
|
|
36
|
-
owners: ["@saas-team"],
|
|
37
|
-
tags: ["billing", "usage", "metrics"],
|
|
38
|
-
stability: StabilityEnum.Beta,
|
|
39
|
-
goal: "Monitor feature usage and limits",
|
|
40
|
-
context: "Billing section"
|
|
41
|
-
},
|
|
42
|
-
source: {
|
|
43
|
-
type: "component",
|
|
44
|
-
framework: "react",
|
|
45
|
-
componentKey: "UsageDashboardView"
|
|
46
|
-
},
|
|
47
|
-
targets: ["react", "markdown"],
|
|
48
|
-
policy: {
|
|
49
|
-
flags: ["saas.billing.enabled"]
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
// src/dashboard/dashboard.presentation.ts
|
|
54
|
-
import {
|
|
55
|
-
definePresentation as definePresentation2,
|
|
56
|
-
StabilityEnum as StabilityEnum2
|
|
57
|
-
} from "@contractspec/lib.contracts-spec";
|
|
58
|
-
var SaasDashboardPresentation = definePresentation2({
|
|
59
|
-
meta: {
|
|
60
|
-
key: "saas.dashboard",
|
|
61
|
-
version: "1.0.0",
|
|
62
|
-
title: "SaaS Dashboard",
|
|
63
|
-
description: "Main SaaS dashboard with project overview, usage stats, and quick actions",
|
|
64
|
-
domain: "saas-boilerplate",
|
|
65
|
-
owners: ["@saas-team"],
|
|
66
|
-
tags: ["dashboard", "overview"],
|
|
67
|
-
stability: StabilityEnum2.Beta,
|
|
68
|
-
goal: "Overview of SaaS activity and metrics",
|
|
69
|
-
context: "Main dashboard"
|
|
70
|
-
},
|
|
71
|
-
source: {
|
|
72
|
-
type: "component",
|
|
73
|
-
framework: "react",
|
|
74
|
-
componentKey: "SaasDashboard"
|
|
75
|
-
},
|
|
76
|
-
targets: ["react", "markdown"],
|
|
77
|
-
policy: {
|
|
78
|
-
flags: ["saas.enabled"]
|
|
79
|
-
}
|
|
80
|
-
});
|
|
81
|
-
var SettingsPanelPresentation = definePresentation2({
|
|
82
|
-
meta: {
|
|
83
|
-
key: "saas.settings",
|
|
84
|
-
version: "1.0.0",
|
|
85
|
-
title: "Settings Panel",
|
|
86
|
-
description: "Organization and user settings panel",
|
|
87
|
-
domain: "saas-boilerplate",
|
|
88
|
-
owners: ["@saas-team"],
|
|
89
|
-
tags: ["settings", "config"],
|
|
90
|
-
stability: StabilityEnum2.Beta,
|
|
91
|
-
goal: "Configure organization and user settings",
|
|
92
|
-
context: "Settings section"
|
|
93
|
-
},
|
|
94
|
-
source: {
|
|
95
|
-
type: "component",
|
|
96
|
-
framework: "react",
|
|
97
|
-
componentKey: "SettingsPanel"
|
|
98
|
-
},
|
|
99
|
-
targets: ["react"],
|
|
100
|
-
policy: {
|
|
101
|
-
flags: ["saas.enabled"]
|
|
102
|
-
}
|
|
103
|
-
});
|
|
104
|
-
|
|
105
|
-
// src/project/project.enum.ts
|
|
106
|
-
import { defineEnum } from "@contractspec/lib.schema";
|
|
107
|
-
var ProjectStatusSchemaEnum = defineEnum("ProjectStatus", [
|
|
108
|
-
"DRAFT",
|
|
109
|
-
"ACTIVE",
|
|
110
|
-
"ARCHIVED",
|
|
111
|
-
"DELETED"
|
|
112
|
-
]);
|
|
113
|
-
var ProjectStatusFilterEnum = defineEnum("ProjectStatusFilter", [
|
|
114
|
-
"DRAFT",
|
|
115
|
-
"ACTIVE",
|
|
116
|
-
"ARCHIVED",
|
|
117
|
-
"all"
|
|
118
|
-
]);
|
|
119
|
-
|
|
120
|
-
// src/project/project.schema.ts
|
|
121
|
-
import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
|
|
122
|
-
var ProjectModel = defineSchemaModel({
|
|
123
|
-
name: "Project",
|
|
124
|
-
description: "A project within an organization",
|
|
125
|
-
fields: {
|
|
126
|
-
id: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
|
|
127
|
-
name: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
|
|
128
|
-
description: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
|
|
129
|
-
slug: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
|
|
130
|
-
organizationId: {
|
|
131
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
132
|
-
isOptional: false
|
|
133
|
-
},
|
|
134
|
-
createdBy: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
|
|
135
|
-
status: { type: ProjectStatusSchemaEnum, isOptional: false },
|
|
136
|
-
isPublic: { type: ScalarTypeEnum.Boolean(), isOptional: false },
|
|
137
|
-
tags: {
|
|
138
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
139
|
-
isArray: true,
|
|
140
|
-
isOptional: false
|
|
141
|
-
},
|
|
142
|
-
createdAt: { type: ScalarTypeEnum.DateTime(), isOptional: false },
|
|
143
|
-
updatedAt: { type: ScalarTypeEnum.DateTime(), isOptional: false }
|
|
144
|
-
}
|
|
145
|
-
});
|
|
146
|
-
var CreateProjectInputModel = defineSchemaModel({
|
|
147
|
-
name: "CreateProjectInput",
|
|
148
|
-
description: "Input for creating a project",
|
|
149
|
-
fields: {
|
|
150
|
-
name: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },
|
|
151
|
-
description: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
|
|
152
|
-
slug: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
|
|
153
|
-
isPublic: { type: ScalarTypeEnum.Boolean(), isOptional: true },
|
|
154
|
-
tags: {
|
|
155
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
156
|
-
isArray: true,
|
|
157
|
-
isOptional: true
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
});
|
|
161
|
-
var UpdateProjectInputModel = defineSchemaModel({
|
|
162
|
-
name: "UpdateProjectInput",
|
|
163
|
-
description: "Input for updating a project",
|
|
164
|
-
fields: {
|
|
165
|
-
projectId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
|
|
166
|
-
name: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
|
|
167
|
-
description: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
|
|
168
|
-
slug: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
|
|
169
|
-
isPublic: { type: ScalarTypeEnum.Boolean(), isOptional: true },
|
|
170
|
-
tags: {
|
|
171
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
172
|
-
isArray: true,
|
|
173
|
-
isOptional: true
|
|
174
|
-
},
|
|
175
|
-
status: { type: ProjectStatusSchemaEnum, isOptional: true }
|
|
176
|
-
}
|
|
177
|
-
});
|
|
178
|
-
var GetProjectInputModel = defineSchemaModel({
|
|
179
|
-
name: "GetProjectInput",
|
|
180
|
-
fields: {
|
|
181
|
-
projectId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false }
|
|
182
|
-
}
|
|
183
|
-
});
|
|
184
|
-
var DeleteProjectInputModel = defineSchemaModel({
|
|
185
|
-
name: "DeleteProjectInput",
|
|
186
|
-
fields: {
|
|
187
|
-
projectId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false }
|
|
188
|
-
}
|
|
189
|
-
});
|
|
190
|
-
var DeleteProjectOutputModel = defineSchemaModel({
|
|
191
|
-
name: "DeleteProjectOutput",
|
|
192
|
-
fields: {
|
|
193
|
-
success: { type: ScalarTypeEnum.Boolean(), isOptional: false }
|
|
194
|
-
}
|
|
195
|
-
});
|
|
196
|
-
var ProjectDeletedPayloadModel = defineSchemaModel({
|
|
197
|
-
name: "ProjectDeletedPayload",
|
|
198
|
-
fields: {
|
|
199
|
-
projectId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false }
|
|
200
|
-
}
|
|
201
|
-
});
|
|
202
|
-
var ListProjectsInputModel = defineSchemaModel({
|
|
203
|
-
name: "ListProjectsInput",
|
|
204
|
-
description: "Input for listing projects",
|
|
205
|
-
fields: {
|
|
206
|
-
status: { type: ProjectStatusFilterEnum, isOptional: true },
|
|
207
|
-
search: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
|
|
208
|
-
limit: {
|
|
209
|
-
type: ScalarTypeEnum.Int_unsecure(),
|
|
210
|
-
isOptional: true,
|
|
211
|
-
defaultValue: 20
|
|
212
|
-
},
|
|
213
|
-
offset: {
|
|
214
|
-
type: ScalarTypeEnum.Int_unsecure(),
|
|
215
|
-
isOptional: true,
|
|
216
|
-
defaultValue: 0
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
});
|
|
220
|
-
var ListProjectsOutputModel = defineSchemaModel({
|
|
221
|
-
name: "ListProjectsOutput",
|
|
222
|
-
description: "Output for listing projects",
|
|
223
|
-
fields: {
|
|
224
|
-
projects: { type: ProjectModel, isArray: true, isOptional: false },
|
|
225
|
-
total: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false }
|
|
226
|
-
}
|
|
227
|
-
});
|
|
228
|
-
|
|
229
|
-
// src/project/project.presentation.ts
|
|
230
|
-
import {
|
|
231
|
-
definePresentation as definePresentation3,
|
|
232
|
-
StabilityEnum as StabilityEnum3
|
|
233
|
-
} from "@contractspec/lib.contracts-spec";
|
|
234
|
-
var ProjectListPresentation = definePresentation3({
|
|
235
|
-
meta: {
|
|
236
|
-
key: "saas.project.list",
|
|
237
|
-
version: "1.0.0",
|
|
238
|
-
title: "Project List",
|
|
239
|
-
description: "List view of projects with status, tags, and last updated info",
|
|
240
|
-
domain: "saas-boilerplate",
|
|
241
|
-
owners: ["@saas-team"],
|
|
242
|
-
tags: ["project", "list", "dashboard"],
|
|
243
|
-
stability: StabilityEnum3.Beta,
|
|
244
|
-
goal: "Browse and manage projects",
|
|
245
|
-
context: "Project list page"
|
|
246
|
-
},
|
|
247
|
-
source: {
|
|
248
|
-
type: "component",
|
|
249
|
-
framework: "react",
|
|
250
|
-
componentKey: "ProjectListView",
|
|
251
|
-
props: ProjectModel
|
|
252
|
-
},
|
|
253
|
-
targets: ["react", "markdown", "application/json"],
|
|
254
|
-
policy: {
|
|
255
|
-
flags: ["saas.projects.enabled"]
|
|
256
|
-
}
|
|
257
|
-
});
|
|
258
|
-
var ProjectDetailPresentation = definePresentation3({
|
|
259
|
-
meta: {
|
|
260
|
-
key: "saas.project.detail",
|
|
261
|
-
version: "1.0.0",
|
|
262
|
-
title: "Project Details",
|
|
263
|
-
description: "Detailed view of a project with settings and activity",
|
|
264
|
-
domain: "saas-boilerplate",
|
|
265
|
-
owners: ["@saas-team"],
|
|
266
|
-
tags: ["project", "detail"],
|
|
267
|
-
stability: StabilityEnum3.Beta,
|
|
268
|
-
goal: "View and edit project details",
|
|
269
|
-
context: "Project detail page"
|
|
270
|
-
},
|
|
271
|
-
source: {
|
|
272
|
-
type: "component",
|
|
273
|
-
framework: "react",
|
|
274
|
-
componentKey: "ProjectDetailView"
|
|
275
|
-
},
|
|
276
|
-
targets: ["react", "markdown"],
|
|
277
|
-
policy: {
|
|
278
|
-
flags: ["saas.projects.enabled"]
|
|
279
|
-
}
|
|
280
|
-
});
|
|
281
|
-
|
|
282
|
-
// src/presentations/index.ts
|
|
283
|
-
var SaasBoilerplatePresentations = {
|
|
284
|
-
SubscriptionPresentation: undefined,
|
|
285
|
-
UsageDashboardPresentation: undefined,
|
|
286
|
-
ProjectListPresentation: undefined,
|
|
287
|
-
ProjectDetailPresentation: undefined,
|
|
288
|
-
SaasDashboardPresentation: undefined,
|
|
289
|
-
SettingsPanelPresentation: undefined
|
|
290
|
-
};
|
|
291
|
-
export {
|
|
292
|
-
UsageDashboardPresentation,
|
|
293
|
-
SubscriptionPresentation,
|
|
294
|
-
SettingsPanelPresentation,
|
|
295
|
-
SaasDashboardPresentation,
|
|
296
|
-
SaasBoilerplatePresentations,
|
|
297
|
-
ProjectListPresentation,
|
|
298
|
-
ProjectDetailPresentation
|
|
299
|
-
};
|
|
1
|
+
import{definePresentation as x,StabilityEnum as z}from"@contractspec/lib.contracts-spec";var I=x({meta:{key:"saas.billing.subscription",version:"1.0.0",title:"Subscription Status",description:"Subscription status with plan info, limits, and current usage",domain:"saas-boilerplate",owners:["@saas-team"],tags:["billing","subscription"],stability:z.Beta,goal:"View subscription plan and status",context:"Billing section"},source:{type:"component",framework:"react",componentKey:"SubscriptionView"},targets:["react","markdown"],policy:{flags:["saas.billing.enabled"]}}),J=x({meta:{key:"saas.billing.usage",version:"1.0.0",title:"Usage Dashboard",description:"Usage metrics and breakdown by resource type",domain:"saas-boilerplate",owners:["@saas-team"],tags:["billing","usage","metrics"],stability:z.Beta,goal:"Monitor feature usage and limits",context:"Billing section"},source:{type:"component",framework:"react",componentKey:"UsageDashboardView"},targets:["react","markdown"],policy:{flags:["saas.billing.enabled"]}});import{definePresentation as A,StabilityEnum as B}from"@contractspec/lib.contracts-spec";var K=A({meta:{key:"saas.dashboard",version:"1.0.0",title:"SaaS Dashboard",description:"Main SaaS dashboard with project overview, usage stats, and quick actions",domain:"saas-boilerplate",owners:["@saas-team"],tags:["dashboard","overview"],stability:B.Beta,goal:"Overview of SaaS activity and metrics",context:"Main dashboard"},source:{type:"component",framework:"react",componentKey:"SaasDashboard"},targets:["react","markdown"],policy:{flags:["saas.enabled"]}}),L=A({meta:{key:"saas.settings",version:"1.0.0",title:"Settings Panel",description:"Organization and user settings panel",domain:"saas-boilerplate",owners:["@saas-team"],tags:["settings","config"],stability:B.Beta,goal:"Configure organization and user settings",context:"Settings section"},source:{type:"component",framework:"react",componentKey:"SettingsPanel"},targets:["react"],policy:{flags:["saas.enabled"]}});import{defineEnum as C}from"@contractspec/lib.schema";var v=C("ProjectStatus",["DRAFT","ACTIVE","ARCHIVED","DELETED"]),D=C("ProjectStatusFilter",["DRAFT","ACTIVE","ARCHIVED","all"]);import{defineSchemaModel as q,ScalarTypeEnum as k}from"@contractspec/lib.schema";var w=q({name:"Project",description:"A project within an organization",fields:{id:{type:k.String_unsecure(),isOptional:!1},name:{type:k.String_unsecure(),isOptional:!1},description:{type:k.String_unsecure(),isOptional:!0},slug:{type:k.String_unsecure(),isOptional:!0},organizationId:{type:k.String_unsecure(),isOptional:!1},createdBy:{type:k.String_unsecure(),isOptional:!1},status:{type:v,isOptional:!1},isPublic:{type:k.Boolean(),isOptional:!1},tags:{type:k.String_unsecure(),isArray:!0,isOptional:!1},createdAt:{type:k.DateTime(),isOptional:!1},updatedAt:{type:k.DateTime(),isOptional:!1}}}),$=q({name:"CreateProjectInput",description:"Input for creating a project",fields:{name:{type:k.NonEmptyString(),isOptional:!1},description:{type:k.String_unsecure(),isOptional:!0},slug:{type:k.String_unsecure(),isOptional:!0},isPublic:{type:k.Boolean(),isOptional:!0},tags:{type:k.String_unsecure(),isArray:!0,isOptional:!0}}}),g=q({name:"UpdateProjectInput",description:"Input for updating a project",fields:{projectId:{type:k.String_unsecure(),isOptional:!1},name:{type:k.String_unsecure(),isOptional:!0},description:{type:k.String_unsecure(),isOptional:!0},slug:{type:k.String_unsecure(),isOptional:!0},isPublic:{type:k.Boolean(),isOptional:!0},tags:{type:k.String_unsecure(),isArray:!0,isOptional:!0},status:{type:v,isOptional:!0}}}),F=q({name:"GetProjectInput",fields:{projectId:{type:k.String_unsecure(),isOptional:!1}}}),O=q({name:"DeleteProjectInput",fields:{projectId:{type:k.String_unsecure(),isOptional:!1}}}),j=q({name:"DeleteProjectOutput",fields:{success:{type:k.Boolean(),isOptional:!1}}}),M=q({name:"ProjectDeletedPayload",fields:{projectId:{type:k.String_unsecure(),isOptional:!1}}}),P=q({name:"ListProjectsInput",description:"Input for listing projects",fields:{status:{type:D,isOptional:!0},search:{type:k.String_unsecure(),isOptional:!0},limit:{type:k.Int_unsecure(),isOptional:!0,defaultValue:20},offset:{type:k.Int_unsecure(),isOptional:!0,defaultValue:0}}}),b=q({name:"ListProjectsOutput",description:"Output for listing projects",fields:{projects:{type:w,isArray:!0,isOptional:!1},total:{type:k.Int_unsecure(),isOptional:!1}}});import{definePresentation as G,StabilityEnum as H}from"@contractspec/lib.contracts-spec";var N=G({meta:{key:"saas.project.list",version:"1.0.0",title:"Project List",description:"List view of projects with status, tags, and last updated info",domain:"saas-boilerplate",owners:["@saas-team"],tags:["project","list","dashboard"],stability:H.Beta,goal:"Browse and manage projects",context:"Project list page"},source:{type:"component",framework:"react",componentKey:"ProjectListView",props:w},targets:["react","markdown","application/json"],policy:{flags:["saas.projects.enabled"]}}),Q=G({meta:{key:"saas.project.detail",version:"1.0.0",title:"Project Details",description:"Detailed view of a project with settings and activity",domain:"saas-boilerplate",owners:["@saas-team"],tags:["project","detail"],stability:H.Beta,goal:"View and edit project details",context:"Project detail page"},source:{type:"component",framework:"react",componentKey:"ProjectDetailView"},targets:["react","markdown"],policy:{flags:["saas.projects.enabled"]}});var d={SubscriptionPresentation:void 0,UsageDashboardPresentation:void 0,ProjectListPresentation:void 0,ProjectDetailPresentation:void 0,SaasDashboardPresentation:void 0,SettingsPanelPresentation:void 0};export{J as UsageDashboardPresentation,I as SubscriptionPresentation,L as SettingsPanelPresentation,K as SaasDashboardPresentation,d as SaasBoilerplatePresentations,N as ProjectListPresentation,Q as ProjectDetailPresentation};
|