@lssm/example.saas-boilerplate 0.0.0-canary-20251217054315 → 0.0.0-canary-20251217060804

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.
@@ -0,0 +1,234 @@
1
+ import * as _lssm_lib_schema296 from "@lssm/lib.schema";
2
+
3
+ //#region src/project/project.schema.d.ts
4
+ /**
5
+ * A project within an organization.
6
+ */
7
+ declare const ProjectModel: _lssm_lib_schema296.SchemaModel<{
8
+ id: {
9
+ type: _lssm_lib_schema296.FieldType<string, string>;
10
+ isOptional: false;
11
+ };
12
+ name: {
13
+ type: _lssm_lib_schema296.FieldType<string, string>;
14
+ isOptional: false;
15
+ };
16
+ description: {
17
+ type: _lssm_lib_schema296.FieldType<string, string>;
18
+ isOptional: true;
19
+ };
20
+ slug: {
21
+ type: _lssm_lib_schema296.FieldType<string, string>;
22
+ isOptional: true;
23
+ };
24
+ organizationId: {
25
+ type: _lssm_lib_schema296.FieldType<string, string>;
26
+ isOptional: false;
27
+ };
28
+ createdBy: {
29
+ type: _lssm_lib_schema296.FieldType<string, string>;
30
+ isOptional: false;
31
+ };
32
+ status: {
33
+ type: _lssm_lib_schema296.EnumType<[string, string, string, string]>;
34
+ isOptional: false;
35
+ };
36
+ isPublic: {
37
+ type: _lssm_lib_schema296.FieldType<boolean, boolean>;
38
+ isOptional: false;
39
+ };
40
+ tags: {
41
+ type: _lssm_lib_schema296.FieldType<string, string>;
42
+ isArray: true;
43
+ isOptional: false;
44
+ };
45
+ createdAt: {
46
+ type: _lssm_lib_schema296.FieldType<Date, string>;
47
+ isOptional: false;
48
+ };
49
+ updatedAt: {
50
+ type: _lssm_lib_schema296.FieldType<Date, string>;
51
+ isOptional: false;
52
+ };
53
+ }>;
54
+ /**
55
+ * Input for creating a project.
56
+ */
57
+ declare const CreateProjectInputModel: _lssm_lib_schema296.SchemaModel<{
58
+ name: {
59
+ type: _lssm_lib_schema296.FieldType<string, string>;
60
+ isOptional: false;
61
+ };
62
+ description: {
63
+ type: _lssm_lib_schema296.FieldType<string, string>;
64
+ isOptional: true;
65
+ };
66
+ slug: {
67
+ type: _lssm_lib_schema296.FieldType<string, string>;
68
+ isOptional: true;
69
+ };
70
+ isPublic: {
71
+ type: _lssm_lib_schema296.FieldType<boolean, boolean>;
72
+ isOptional: true;
73
+ };
74
+ tags: {
75
+ type: _lssm_lib_schema296.FieldType<string, string>;
76
+ isArray: true;
77
+ isOptional: true;
78
+ };
79
+ }>;
80
+ /**
81
+ * Input for updating a project.
82
+ */
83
+ declare const UpdateProjectInputModel: _lssm_lib_schema296.SchemaModel<{
84
+ projectId: {
85
+ type: _lssm_lib_schema296.FieldType<string, string>;
86
+ isOptional: false;
87
+ };
88
+ name: {
89
+ type: _lssm_lib_schema296.FieldType<string, string>;
90
+ isOptional: true;
91
+ };
92
+ description: {
93
+ type: _lssm_lib_schema296.FieldType<string, string>;
94
+ isOptional: true;
95
+ };
96
+ slug: {
97
+ type: _lssm_lib_schema296.FieldType<string, string>;
98
+ isOptional: true;
99
+ };
100
+ isPublic: {
101
+ type: _lssm_lib_schema296.FieldType<boolean, boolean>;
102
+ isOptional: true;
103
+ };
104
+ tags: {
105
+ type: _lssm_lib_schema296.FieldType<string, string>;
106
+ isArray: true;
107
+ isOptional: true;
108
+ };
109
+ status: {
110
+ type: _lssm_lib_schema296.EnumType<[string, string, string, string]>;
111
+ isOptional: true;
112
+ };
113
+ }>;
114
+ /**
115
+ * Input for getting a project.
116
+ */
117
+ declare const GetProjectInputModel: _lssm_lib_schema296.SchemaModel<{
118
+ projectId: {
119
+ type: _lssm_lib_schema296.FieldType<string, string>;
120
+ isOptional: false;
121
+ };
122
+ }>;
123
+ /**
124
+ * Input for deleting a project.
125
+ */
126
+ declare const DeleteProjectInputModel: _lssm_lib_schema296.SchemaModel<{
127
+ projectId: {
128
+ type: _lssm_lib_schema296.FieldType<string, string>;
129
+ isOptional: false;
130
+ };
131
+ }>;
132
+ /**
133
+ * Output for delete operation.
134
+ */
135
+ declare const DeleteProjectOutputModel: _lssm_lib_schema296.SchemaModel<{
136
+ success: {
137
+ type: _lssm_lib_schema296.FieldType<boolean, boolean>;
138
+ isOptional: false;
139
+ };
140
+ }>;
141
+ /**
142
+ * Payload for project deleted event.
143
+ */
144
+ declare const ProjectDeletedPayloadModel: _lssm_lib_schema296.SchemaModel<{
145
+ projectId: {
146
+ type: _lssm_lib_schema296.FieldType<string, string>;
147
+ isOptional: false;
148
+ };
149
+ }>;
150
+ /**
151
+ * Input for listing projects.
152
+ */
153
+ declare const ListProjectsInputModel: _lssm_lib_schema296.SchemaModel<{
154
+ status: {
155
+ type: _lssm_lib_schema296.EnumType<[string, string, string, string]>;
156
+ isOptional: true;
157
+ };
158
+ search: {
159
+ type: _lssm_lib_schema296.FieldType<string, string>;
160
+ isOptional: true;
161
+ };
162
+ limit: {
163
+ type: _lssm_lib_schema296.FieldType<number, number>;
164
+ isOptional: true;
165
+ defaultValue: number;
166
+ };
167
+ offset: {
168
+ type: _lssm_lib_schema296.FieldType<number, number>;
169
+ isOptional: true;
170
+ defaultValue: number;
171
+ };
172
+ }>;
173
+ /**
174
+ * Output for listing projects.
175
+ */
176
+ declare const ListProjectsOutputModel: _lssm_lib_schema296.SchemaModel<{
177
+ projects: {
178
+ type: _lssm_lib_schema296.SchemaModel<{
179
+ id: {
180
+ type: _lssm_lib_schema296.FieldType<string, string>;
181
+ isOptional: false;
182
+ };
183
+ name: {
184
+ type: _lssm_lib_schema296.FieldType<string, string>;
185
+ isOptional: false;
186
+ };
187
+ description: {
188
+ type: _lssm_lib_schema296.FieldType<string, string>;
189
+ isOptional: true;
190
+ };
191
+ slug: {
192
+ type: _lssm_lib_schema296.FieldType<string, string>;
193
+ isOptional: true;
194
+ };
195
+ organizationId: {
196
+ type: _lssm_lib_schema296.FieldType<string, string>;
197
+ isOptional: false;
198
+ };
199
+ createdBy: {
200
+ type: _lssm_lib_schema296.FieldType<string, string>;
201
+ isOptional: false;
202
+ };
203
+ status: {
204
+ type: _lssm_lib_schema296.EnumType<[string, string, string, string]>;
205
+ isOptional: false;
206
+ };
207
+ isPublic: {
208
+ type: _lssm_lib_schema296.FieldType<boolean, boolean>;
209
+ isOptional: false;
210
+ };
211
+ tags: {
212
+ type: _lssm_lib_schema296.FieldType<string, string>;
213
+ isArray: true;
214
+ isOptional: false;
215
+ };
216
+ createdAt: {
217
+ type: _lssm_lib_schema296.FieldType<Date, string>;
218
+ isOptional: false;
219
+ };
220
+ updatedAt: {
221
+ type: _lssm_lib_schema296.FieldType<Date, string>;
222
+ isOptional: false;
223
+ };
224
+ }>;
225
+ isArray: true;
226
+ isOptional: false;
227
+ };
228
+ total: {
229
+ type: _lssm_lib_schema296.FieldType<number, number>;
230
+ isOptional: false;
231
+ };
232
+ }>;
233
+ //#endregion
234
+ export { CreateProjectInputModel, DeleteProjectInputModel, DeleteProjectOutputModel, GetProjectInputModel, ListProjectsInputModel, ListProjectsOutputModel, ProjectDeletedPayloadModel, ProjectModel, UpdateProjectInputModel };
@@ -0,0 +1,11 @@
1
+ import { FeatureModuleSpec } from "@lssm/lib.contracts";
2
+
3
+ //#region src/saas-boilerplate.feature.d.ts
4
+
5
+ /**
6
+ * SaaS Boilerplate feature module that bundles project management,
7
+ * billing, and settings operations into an installable feature.
8
+ */
9
+ declare const SaasBoilerplateFeature: FeatureModuleSpec;
10
+ //#endregion
11
+ export { SaasBoilerplateFeature };
@@ -0,0 +1,3 @@
1
+ import { SettingsScopeEnum } from "./settings.enum.js";
2
+ import { FeatureFlagEntity, SettingsEntity } from "./settings.entity.js";
3
+ export { FeatureFlagEntity, SettingsEntity, SettingsScopeEnum };
@@ -0,0 +1,36 @@
1
+ import * as _lssm_lib_schema189 from "@lssm/lib.schema";
2
+
3
+ //#region src/settings/settings.entity.d.ts
4
+ /**
5
+ * Settings entity - key-value configuration store.
6
+ */
7
+ declare const SettingsEntity: _lssm_lib_schema189.EntitySpec<{
8
+ id: _lssm_lib_schema189.EntityScalarField;
9
+ key: _lssm_lib_schema189.EntityScalarField;
10
+ scope: _lssm_lib_schema189.EntityEnumField;
11
+ scopeId: _lssm_lib_schema189.EntityScalarField;
12
+ value: _lssm_lib_schema189.EntityScalarField;
13
+ valueType: _lssm_lib_schema189.EntityScalarField;
14
+ schema: _lssm_lib_schema189.EntityScalarField;
15
+ description: _lssm_lib_schema189.EntityScalarField;
16
+ isSecret: _lssm_lib_schema189.EntityScalarField;
17
+ createdAt: _lssm_lib_schema189.EntityScalarField;
18
+ updatedAt: _lssm_lib_schema189.EntityScalarField;
19
+ }>;
20
+ /**
21
+ * FeatureFlag entity - feature toggles.
22
+ */
23
+ declare const FeatureFlagEntity: _lssm_lib_schema189.EntitySpec<{
24
+ id: _lssm_lib_schema189.EntityScalarField;
25
+ key: _lssm_lib_schema189.EntityScalarField;
26
+ name: _lssm_lib_schema189.EntityScalarField;
27
+ description: _lssm_lib_schema189.EntityScalarField;
28
+ enabled: _lssm_lib_schema189.EntityScalarField;
29
+ defaultValue: _lssm_lib_schema189.EntityScalarField;
30
+ rules: _lssm_lib_schema189.EntityScalarField;
31
+ rolloutPercentage: _lssm_lib_schema189.EntityScalarField;
32
+ createdAt: _lssm_lib_schema189.EntityScalarField;
33
+ updatedAt: _lssm_lib_schema189.EntityScalarField;
34
+ }>;
35
+ //#endregion
36
+ export { FeatureFlagEntity, SettingsEntity };
@@ -0,0 +1,9 @@
1
+ import * as _lssm_lib_schema369 from "@lssm/lib.schema";
2
+
3
+ //#region src/settings/settings.enum.d.ts
4
+ /**
5
+ * Settings scope enum.
6
+ */
7
+ declare const SettingsScopeEnum: _lssm_lib_schema369.EntityEnumDef;
8
+ //#endregion
9
+ export { SettingsScopeEnum };
@@ -0,0 +1,85 @@
1
+ //#region src/shared/mock-data.d.ts
2
+ /**
3
+ * Shared mock data for saas-boilerplate handlers.
4
+ */
5
+ declare const MOCK_PROJECTS: ({
6
+ id: string;
7
+ name: string;
8
+ description: string;
9
+ slug: string;
10
+ organizationId: string;
11
+ createdBy: string;
12
+ status: "ACTIVE";
13
+ isPublic: boolean;
14
+ tags: string[];
15
+ createdAt: Date;
16
+ updatedAt: Date;
17
+ } | {
18
+ id: string;
19
+ name: string;
20
+ description: string;
21
+ slug: string;
22
+ organizationId: string;
23
+ createdBy: string;
24
+ status: "DRAFT";
25
+ isPublic: boolean;
26
+ tags: string[];
27
+ createdAt: Date;
28
+ updatedAt: Date;
29
+ } | {
30
+ id: string;
31
+ name: string;
32
+ description: string;
33
+ slug: string;
34
+ organizationId: string;
35
+ createdBy: string;
36
+ status: "ARCHIVED";
37
+ isPublic: boolean;
38
+ tags: string[];
39
+ createdAt: Date;
40
+ updatedAt: Date;
41
+ })[];
42
+ declare const MOCK_SUBSCRIPTION: {
43
+ id: string;
44
+ organizationId: string;
45
+ planId: string;
46
+ planName: string;
47
+ status: "ACTIVE";
48
+ currentPeriodStart: Date;
49
+ currentPeriodEnd: Date;
50
+ limits: {
51
+ projects: number;
52
+ users: number;
53
+ storage: number;
54
+ apiCalls: number;
55
+ };
56
+ usage: {
57
+ projects: number;
58
+ users: number;
59
+ storage: number;
60
+ apiCalls: number;
61
+ };
62
+ };
63
+ declare const MOCK_USAGE_SUMMARY: {
64
+ organizationId: string;
65
+ period: string;
66
+ apiCalls: {
67
+ total: number;
68
+ limit: number;
69
+ percentUsed: number;
70
+ };
71
+ storage: {
72
+ totalGb: number;
73
+ limitGb: number;
74
+ percentUsed: number;
75
+ };
76
+ activeProjects: number;
77
+ activeUsers: number;
78
+ breakdown: {
79
+ date: string;
80
+ apiCalls: number;
81
+ storageGb: number;
82
+ }[];
83
+ };
84
+ //#endregion
85
+ export { MOCK_PROJECTS, MOCK_SUBSCRIPTION, MOCK_USAGE_SUMMARY };
package/package.json CHANGED
@@ -1,40 +1,40 @@
1
1
  {
2
2
  "name": "@lssm/example.saas-boilerplate",
3
- "version": "0.0.0-canary-20251217054315",
3
+ "version": "0.0.0-canary-20251217060804",
4
4
  "description": "SaaS Boilerplate - Users, Orgs, Projects, Billing, Settings",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
8
8
  "exports": {
9
- ".": "./src/index.ts",
10
- "./billing": "./src/billing/index.ts",
11
- "./billing/billing.contracts": "./src/billing/billing.contracts.ts",
12
- "./billing/billing.entity": "./src/billing/billing.entity.ts",
13
- "./billing/billing.enum": "./src/billing/billing.enum.ts",
14
- "./billing/billing.event": "./src/billing/billing.event.ts",
15
- "./billing/billing.handler": "./src/billing/billing.handler.ts",
16
- "./billing/billing.presentation": "./src/billing/billing.presentation.ts",
17
- "./billing/billing.schema": "./src/billing/billing.schema.ts",
18
- "./dashboard": "./src/dashboard/index.ts",
19
- "./dashboard/dashboard.presentation": "./src/dashboard/dashboard.presentation.ts",
20
- "./docs": "./src/docs/index.ts",
21
- "./docs/saas-boilerplate.docblock": "./src/docs/saas-boilerplate.docblock.ts",
22
- "./example": "./src/example.ts",
23
- "./handlers": "./src/handlers/index.ts",
24
- "./presentations": "./src/presentations/index.ts",
25
- "./project": "./src/project/index.ts",
26
- "./project/project.contracts": "./src/project/project.contracts.ts",
27
- "./project/project.entity": "./src/project/project.entity.ts",
28
- "./project/project.enum": "./src/project/project.enum.ts",
29
- "./project/project.event": "./src/project/project.event.ts",
30
- "./project/project.handler": "./src/project/project.handler.ts",
31
- "./project/project.presentation": "./src/project/project.presentation.ts",
32
- "./project/project.schema": "./src/project/project.schema.ts",
33
- "./saas-boilerplate.feature": "./src/saas-boilerplate.feature.ts",
34
- "./settings": "./src/settings/index.ts",
35
- "./settings/settings.entity": "./src/settings/settings.entity.ts",
36
- "./settings/settings.enum": "./src/settings/settings.enum.ts",
37
- "./shared/mock-data": "./src/shared/mock-data.ts",
9
+ ".": "./dist/index.js",
10
+ "./billing": "./dist/billing/index.js",
11
+ "./billing/billing.contracts": "./dist/billing/billing.contracts.js",
12
+ "./billing/billing.entity": "./dist/billing/billing.entity.js",
13
+ "./billing/billing.enum": "./dist/billing/billing.enum.js",
14
+ "./billing/billing.event": "./dist/billing/billing.event.js",
15
+ "./billing/billing.handler": "./dist/billing/billing.handler.js",
16
+ "./billing/billing.presentation": "./dist/billing/billing.presentation.js",
17
+ "./billing/billing.schema": "./dist/billing/billing.schema.js",
18
+ "./dashboard": "./dist/dashboard/index.js",
19
+ "./dashboard/dashboard.presentation": "./dist/dashboard/dashboard.presentation.js",
20
+ "./docs": "./dist/docs/index.js",
21
+ "./docs/saas-boilerplate.docblock": "./dist/docs/saas-boilerplate.docblock.js",
22
+ "./example": "./dist/example.js",
23
+ "./handlers": "./dist/handlers/index.js",
24
+ "./presentations": "./dist/presentations/index.js",
25
+ "./project": "./dist/project/index.js",
26
+ "./project/project.contracts": "./dist/project/project.contracts.js",
27
+ "./project/project.entity": "./dist/project/project.entity.js",
28
+ "./project/project.enum": "./dist/project/project.enum.js",
29
+ "./project/project.event": "./dist/project/project.event.js",
30
+ "./project/project.handler": "./dist/project/project.handler.js",
31
+ "./project/project.presentation": "./dist/project/project.presentation.js",
32
+ "./project/project.schema": "./dist/project/project.schema.js",
33
+ "./saas-boilerplate.feature": "./dist/saas-boilerplate.feature.js",
34
+ "./settings": "./dist/settings/index.js",
35
+ "./settings/settings.entity": "./dist/settings/settings.entity.js",
36
+ "./settings/settings.enum": "./dist/settings/settings.enum.js",
37
+ "./shared/mock-data": "./dist/shared/mock-data.js",
38
38
  "./*": "./*"
39
39
  },
40
40
  "scripts": {
@@ -51,18 +51,18 @@
51
51
  "test": "bun run"
52
52
  },
53
53
  "dependencies": {
54
- "@lssm/lib.schema": "0.0.0-canary-20251217054315",
55
- "@lssm/lib.contracts": "0.0.0-canary-20251217054315",
56
- "@lssm/lib.bus": "0.0.0-canary-20251217054315",
57
- "@lssm/lib.identity-rbac": "0.0.0-canary-20251217054315",
58
- "@lssm/lib.jobs": "0.0.0-canary-20251217054315",
59
- "@lssm/module.audit-trail": "0.0.0-canary-20251217054315",
60
- "@lssm/module.notifications": "0.0.0-canary-20251217054315",
54
+ "@lssm/lib.schema": "0.0.0-canary-20251217060804",
55
+ "@lssm/lib.contracts": "0.0.0-canary-20251217060804",
56
+ "@lssm/lib.bus": "0.0.0-canary-20251217060804",
57
+ "@lssm/lib.identity-rbac": "0.0.0-canary-20251217060804",
58
+ "@lssm/lib.jobs": "0.0.0-canary-20251217060804",
59
+ "@lssm/module.audit-trail": "0.0.0-canary-20251217060804",
60
+ "@lssm/module.notifications": "0.0.0-canary-20251217060804",
61
61
  "zod": "^4.1.13"
62
62
  },
63
63
  "devDependencies": {
64
- "@lssm/tool.tsdown": "0.0.0-canary-20251217054315",
65
- "@lssm/tool.typescript": "0.0.0-canary-20251217054315",
64
+ "@lssm/tool.tsdown": "0.0.0-canary-20251217060804",
65
+ "@lssm/tool.typescript": "0.0.0-canary-20251217060804",
66
66
  "tsdown": "^0.17.4",
67
67
  "typescript": "^5.9.3"
68
68
  },