@lssm/example.saas-boilerplate 0.0.0-canary-20251212230121 → 0.0.0-canary-20251213172311

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.
@@ -2,12 +2,12 @@ $ bun build:bundle && bun build:types
2
2
  $ tsdown
3
3
  ℹ tsdown v0.17.0 powered by rolldown v1.0.0-beta.53
4
4
  ℹ config file: /home/runner/work/contractspec/contractspec/packages/examples/saas-boilerplate/tsdown.config.js
5
- ℹ entry: src/events.ts, src/feature.ts, src/index.ts, src/docs/index.ts, src/docs/saas-boilerplate.docblock.ts, src/entities/billing.ts, src/entities/index.ts, src/entities/project.ts, src/entities/settings.ts, src/contracts/billing.ts, src/contracts/index.ts, src/contracts/project.ts, src/handlers/billing.handlers.ts, src/handlers/index.ts, src/handlers/mock-data.ts, src/handlers/project.handlers.ts, src/presentations/billing.ts, src/presentations/dashboard.ts, src/presentations/index.ts, src/presentations/project-list.ts
5
+ ℹ entry: src/events.ts, src/example.ts, src/feature.ts, src/index.ts, src/docs/index.ts, src/docs/saas-boilerplate.docblock.ts, src/entities/billing.ts, src/entities/index.ts, src/entities/project.ts, src/entities/settings.ts, src/contracts/billing.ts, src/contracts/index.ts, src/contracts/project.ts, src/handlers/billing.handlers.ts, src/handlers/index.ts, src/handlers/mock-data.ts, src/handlers/project.handlers.ts, src/presentations/billing.ts, src/presentations/dashboard.ts, src/presentations/index.ts, src/presentations/project-list.ts
6
6
  ℹ target: esnext
7
7
  ℹ tsconfig: tsconfig.json
8
8
  ℹ Build start
9
9
  ℹ dist/contracts/project.js 5.13 kB │ gzip: 1.37 kB
10
- ℹ dist/index.js 5.00 kB │ gzip: 1.31 kB
10
+ ℹ dist/index.js 5.05 kB │ gzip: 1.33 kB
11
11
  ℹ dist/contracts/billing.js 4.43 kB │ gzip: 1.25 kB
12
12
  ℹ dist/events.js 3.50 kB │ gzip: 0.76 kB
13
13
  ℹ dist/docs/saas-boilerplate.docblock.js 3.46 kB │ gzip: 1.38 kB
@@ -24,8 +24,9 @@ $ tsdown
24
24
  ℹ dist/presentations/billing.js 0.77 kB │ gzip: 0.32 kB
25
25
  ℹ dist/handlers/billing.handlers.js 0.72 kB │ gzip: 0.41 kB
26
26
  ℹ dist/presentations/dashboard.js 0.71 kB │ gzip: 0.33 kB
27
+ ℹ dist/example.js 0.63 kB │ gzip: 0.38 kB
27
28
  ℹ dist/presentations/index.js 0.52 kB │ gzip: 0.21 kB
28
29
  ℹ dist/docs/index.js 0.04 kB │ gzip: 0.06 kB
29
- ℹ 20 files, total: 39.71 kB
30
- ✔ Build complete in 64ms
30
+ ℹ 21 files, total: 40.39 kB
31
+ ✔ Build complete in 87ms
31
32
  $ tsc --noEmit
package/CHANGELOG.md CHANGED
@@ -1,15 +1,15 @@
1
1
  # @lssm/example.saas-boilerplate
2
2
 
3
- ## 0.0.0-canary-20251212230121
3
+ ## 0.0.0-canary-20251213172311
4
4
 
5
5
  ### Patch Changes
6
6
 
7
7
  - 3086383: refactor: dependencies upgrade
8
8
  - Updated dependencies [3086383]
9
- - @lssm/lib.contracts@0.0.0-canary-20251212230121
10
- - @lssm/lib.schema@0.0.0-canary-20251212230121
11
- - @lssm/lib.jobs@0.0.0-canary-20251212230121
12
- - @lssm/lib.bus@0.0.0-canary-20251212230121
13
- - @lssm/lib.identity-rbac@0.0.0-canary-20251212230121
14
- - @lssm/module.audit-trail@0.0.0-canary-20251212230121
15
- - @lssm/module.notifications@0.0.0-canary-20251212230121
9
+ - @lssm/lib.contracts@0.0.0-canary-20251213172311
10
+ - @lssm/lib.schema@0.0.0-canary-20251213172311
11
+ - @lssm/lib.jobs@0.0.0-canary-20251213172311
12
+ - @lssm/lib.bus@0.0.0-canary-20251213172311
13
+ - @lssm/lib.identity-rbac@0.0.0-canary-20251213172311
14
+ - @lssm/module.audit-trail@0.0.0-canary-20251213172311
15
+ - @lssm/module.notifications@0.0.0-canary-20251213172311
@@ -0,0 +1 @@
1
+ var e={id:`saas-boilerplate`,title:`SaaS Boilerplate`,summary:`Multi-tenant SaaS foundation with orgs, projects, settings, billing usage, and RBAC.`,tags:[`saas`,`multi-tenant`,`billing`,`rbac`],kind:`template`,visibility:`public`,docs:{rootDocId:`docs.examples.saas-boilerplate`},entrypoints:{packageName:`@lssm/example.saas-boilerplate`,feature:`./feature`,contracts:`./contracts`,presentations:`./presentations`,handlers:`./handlers`,docs:`./docs`},surfaces:{templates:!0,sandbox:{enabled:!0,modes:[`playground`,`specs`,`builder`,`markdown`,`evolution`]},studio:{enabled:!0,installable:!0},mcp:{enabled:!0}}};export{e as default};
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{ProjectArchivedEvent as e,ProjectCreatedEvent as t,ProjectDeletedEvent as n,ProjectUpdatedEvent as r,SaasBoilerplateEvents as i,SubscriptionChangedEvent as a,UsageLimitReachedEvent as o,UsageRecordedEvent as s}from"./events.js";import{SaasBoilerplateFeature as c}from"./feature.js";import{ProjectEntity as l,ProjectMemberEntity as u,ProjectStatusEnum as d}from"./entities/project.js";import{FeatureFlagEntity as f,SettingsEntity as p,SettingsScopeEnum as m}from"./entities/settings.js";import{BillingUsageEntity as h,SubscriptionEntity as g,SubscriptionStatusEnum as _,UsageLimitEntity as v}from"./entities/billing.js";import{identityRbacEntities as y,identityRbacSchemaContribution as b,saasBoilerplateEntities as x,saasBoilerplateSchemaContribution as S}from"./entities/index.js";import{CreateProjectContract as C,CreateProjectInputModel as w,DeleteProjectContract as T,DeleteProjectInputModel as E,DeleteProjectOutputModel as D,GetProjectContract as O,GetProjectInputModel as k,ListProjectsContract as A,ListProjectsInputModel as j,ListProjectsOutputModel as M,ProjectDeletedPayloadModel as N,ProjectModel as P,ProjectStatusFilterEnum as F,UpdateProjectContract as I,UpdateProjectInputModel as L}from"./contracts/project.js";import{CheckFeatureAccessContract as R,CheckFeatureAccessInputModel as z,CheckFeatureAccessOutputModel as B,FeatureAccessReasonEnum as V,GetSubscriptionContract as ee,GetUsageSummaryContract as H,GetUsageSummaryInputModel as U,GetUsageSummaryOutputModel as W,RecordUsageContract as G,RecordUsageInputModel as K,RecordUsageOutputModel as q,SubscriptionModel as J,UsageRecordedPayloadModel as Y,UsageSummaryModel as X}from"./contracts/billing.js";import"./contracts/index.js";import{MOCK_PROJECTS as Z,MOCK_SUBSCRIPTION as Q,MOCK_USAGE_SUMMARY as $}from"./handlers/mock-data.js";import{mockCreateProjectHandler as te,mockDeleteProjectHandler as ne,mockGetProjectHandler as re,mockListProjectsHandler as ie,mockUpdateProjectHandler as ae}from"./handlers/project.handlers.js";import{mockCheckFeatureAccessHandler as oe,mockGetSubscriptionHandler as se,mockGetUsageSummaryHandler as ce,mockRecordUsageHandler as le}from"./handlers/billing.handlers.js";import{ProjectDetailPresentation as ue,ProjectListPresentation as de}from"./presentations/project-list.js";import{SubscriptionPresentation as fe,UsageDashboardPresentation as pe}from"./presentations/billing.js";import{SaasDashboardPresentation as me,SettingsPanelPresentation as he}from"./presentations/dashboard.js";import{SaasBoilerplatePresentations as ge}from"./presentations/index.js";import"./docs/index.js";import{identityRbacSchemaContribution as _e}from"@lssm/lib.identity-rbac";import{jobsSchemaContribution as ve}from"@lssm/lib.jobs";import{auditTrailSchemaContribution as ye}from"@lssm/module.audit-trail";import{notificationsSchemaContribution as be}from"@lssm/module.notifications";const xe={modules:[_e,ve,ye,be,S],provider:`postgresql`,outputPath:`./prisma/schema/generated.prisma`};export{h as BillingUsageEntity,R as CheckFeatureAccessContract,z as CheckFeatureAccessInputModel,B as CheckFeatureAccessOutputModel,C as CreateProjectContract,w as CreateProjectInputModel,T as DeleteProjectContract,E as DeleteProjectInputModel,D as DeleteProjectOutputModel,V as FeatureAccessReasonEnum,f as FeatureFlagEntity,O as GetProjectContract,k as GetProjectInputModel,ee as GetSubscriptionContract,H as GetUsageSummaryContract,U as GetUsageSummaryInputModel,W as GetUsageSummaryOutputModel,A as ListProjectsContract,j as ListProjectsInputModel,M as ListProjectsOutputModel,Z as MOCK_PROJECTS,Q as MOCK_SUBSCRIPTION,$ as MOCK_USAGE_SUMMARY,e as ProjectArchivedEvent,t as ProjectCreatedEvent,n as ProjectDeletedEvent,N as ProjectDeletedPayloadModel,ue as ProjectDetailPresentation,l as ProjectEntity,de as ProjectListPresentation,u as ProjectMemberEntity,P as ProjectModel,d as ProjectStatusEnum,F as ProjectStatusFilterEnum,r as ProjectUpdatedEvent,G as RecordUsageContract,K as RecordUsageInputModel,q as RecordUsageOutputModel,i as SaasBoilerplateEvents,c as SaasBoilerplateFeature,ge as SaasBoilerplatePresentations,me as SaasDashboardPresentation,p as SettingsEntity,he as SettingsPanelPresentation,m as SettingsScopeEnum,a as SubscriptionChangedEvent,g as SubscriptionEntity,J as SubscriptionModel,fe as SubscriptionPresentation,_ as SubscriptionStatusEnum,I as UpdateProjectContract,L as UpdateProjectInputModel,pe as UsageDashboardPresentation,v as UsageLimitEntity,o as UsageLimitReachedEvent,s as UsageRecordedEvent,Y as UsageRecordedPayloadModel,X as UsageSummaryModel,y as identityRbacEntities,b as identityRbacSchemaContribution,oe as mockCheckFeatureAccessHandler,te as mockCreateProjectHandler,ne as mockDeleteProjectHandler,re as mockGetProjectHandler,se as mockGetSubscriptionHandler,ce as mockGetUsageSummaryHandler,ie as mockListProjectsHandler,le as mockRecordUsageHandler,ae as mockUpdateProjectHandler,x as saasBoilerplateEntities,S as saasBoilerplateSchemaContribution,xe as schemaComposition};
1
+ import{ProjectArchivedEvent as e,ProjectCreatedEvent as t,ProjectDeletedEvent as n,ProjectUpdatedEvent as r,SaasBoilerplateEvents as i,SubscriptionChangedEvent as a,UsageLimitReachedEvent as o,UsageRecordedEvent as s}from"./events.js";import c from"./example.js";import{SaasBoilerplateFeature as l}from"./feature.js";import{ProjectEntity as u,ProjectMemberEntity as d,ProjectStatusEnum as f}from"./entities/project.js";import{FeatureFlagEntity as p,SettingsEntity as m,SettingsScopeEnum as h}from"./entities/settings.js";import{BillingUsageEntity as g,SubscriptionEntity as _,SubscriptionStatusEnum as v,UsageLimitEntity as y}from"./entities/billing.js";import{identityRbacEntities as b,identityRbacSchemaContribution as x,saasBoilerplateEntities as S,saasBoilerplateSchemaContribution as C}from"./entities/index.js";import{CreateProjectContract as w,CreateProjectInputModel as T,DeleteProjectContract as E,DeleteProjectInputModel as D,DeleteProjectOutputModel as O,GetProjectContract as k,GetProjectInputModel as A,ListProjectsContract as j,ListProjectsInputModel as M,ListProjectsOutputModel as N,ProjectDeletedPayloadModel as P,ProjectModel as F,ProjectStatusFilterEnum as I,UpdateProjectContract as L,UpdateProjectInputModel as R}from"./contracts/project.js";import{CheckFeatureAccessContract as z,CheckFeatureAccessInputModel as B,CheckFeatureAccessOutputModel as V,FeatureAccessReasonEnum as ee,GetSubscriptionContract as H,GetUsageSummaryContract as U,GetUsageSummaryInputModel as W,GetUsageSummaryOutputModel as G,RecordUsageContract as K,RecordUsageInputModel as q,RecordUsageOutputModel as J,SubscriptionModel as Y,UsageRecordedPayloadModel as X,UsageSummaryModel as Z}from"./contracts/billing.js";import"./contracts/index.js";import{MOCK_PROJECTS as Q,MOCK_SUBSCRIPTION as $,MOCK_USAGE_SUMMARY as te}from"./handlers/mock-data.js";import{mockCreateProjectHandler as ne,mockDeleteProjectHandler as re,mockGetProjectHandler as ie,mockListProjectsHandler as ae,mockUpdateProjectHandler as oe}from"./handlers/project.handlers.js";import{mockCheckFeatureAccessHandler as se,mockGetSubscriptionHandler as ce,mockGetUsageSummaryHandler as le,mockRecordUsageHandler as ue}from"./handlers/billing.handlers.js";import{ProjectDetailPresentation as de,ProjectListPresentation as fe}from"./presentations/project-list.js";import{SubscriptionPresentation as pe,UsageDashboardPresentation as me}from"./presentations/billing.js";import{SaasDashboardPresentation as he,SettingsPanelPresentation as ge}from"./presentations/dashboard.js";import{SaasBoilerplatePresentations as _e}from"./presentations/index.js";import"./docs/index.js";import{identityRbacSchemaContribution as ve}from"@lssm/lib.identity-rbac";import{jobsSchemaContribution as ye}from"@lssm/lib.jobs";import{auditTrailSchemaContribution as be}from"@lssm/module.audit-trail";import{notificationsSchemaContribution as xe}from"@lssm/module.notifications";const Se={modules:[ve,ye,be,xe,C],provider:`postgresql`,outputPath:`./prisma/schema/generated.prisma`};export{g as BillingUsageEntity,z as CheckFeatureAccessContract,B as CheckFeatureAccessInputModel,V as CheckFeatureAccessOutputModel,w as CreateProjectContract,T as CreateProjectInputModel,E as DeleteProjectContract,D as DeleteProjectInputModel,O as DeleteProjectOutputModel,ee as FeatureAccessReasonEnum,p as FeatureFlagEntity,k as GetProjectContract,A as GetProjectInputModel,H as GetSubscriptionContract,U as GetUsageSummaryContract,W as GetUsageSummaryInputModel,G as GetUsageSummaryOutputModel,j as ListProjectsContract,M as ListProjectsInputModel,N as ListProjectsOutputModel,Q as MOCK_PROJECTS,$ as MOCK_SUBSCRIPTION,te as MOCK_USAGE_SUMMARY,e as ProjectArchivedEvent,t as ProjectCreatedEvent,n as ProjectDeletedEvent,P as ProjectDeletedPayloadModel,de as ProjectDetailPresentation,u as ProjectEntity,fe as ProjectListPresentation,d as ProjectMemberEntity,F as ProjectModel,f as ProjectStatusEnum,I as ProjectStatusFilterEnum,r as ProjectUpdatedEvent,K as RecordUsageContract,q as RecordUsageInputModel,J as RecordUsageOutputModel,i as SaasBoilerplateEvents,l as SaasBoilerplateFeature,_e as SaasBoilerplatePresentations,he as SaasDashboardPresentation,m as SettingsEntity,ge as SettingsPanelPresentation,h as SettingsScopeEnum,a as SubscriptionChangedEvent,_ as SubscriptionEntity,Y as SubscriptionModel,pe as SubscriptionPresentation,v as SubscriptionStatusEnum,L as UpdateProjectContract,R as UpdateProjectInputModel,me as UsageDashboardPresentation,y as UsageLimitEntity,o as UsageLimitReachedEvent,s as UsageRecordedEvent,X as UsageRecordedPayloadModel,Z as UsageSummaryModel,c as example,b as identityRbacEntities,x as identityRbacSchemaContribution,se as mockCheckFeatureAccessHandler,ne as mockCreateProjectHandler,re as mockDeleteProjectHandler,ie as mockGetProjectHandler,ce as mockGetSubscriptionHandler,le as mockGetUsageSummaryHandler,ae as mockListProjectsHandler,ue as mockRecordUsageHandler,oe as mockUpdateProjectHandler,S as saasBoilerplateEntities,C as saasBoilerplateSchemaContribution,Se as schemaComposition};
package/example.ts ADDED
@@ -0,0 +1 @@
1
+ export { default } from './src/example';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lssm/example.saas-boilerplate",
3
- "version": "0.0.0-canary-20251212230121",
3
+ "version": "0.0.0-canary-20251213172311",
4
4
  "description": "SaaS Boilerplate - Users, Orgs, Projects, Billing, Settings",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -17,6 +17,7 @@
17
17
  "./entities/project": "./src/entities/project.ts",
18
18
  "./entities/settings": "./src/entities/settings.ts",
19
19
  "./events": "./src/events.ts",
20
+ "./example": "./src/example.ts",
20
21
  "./feature": "./src/feature.ts",
21
22
  "./handlers": "./src/handlers/index.ts",
22
23
  "./handlers/billing.handlers": "./src/handlers/billing.handlers.ts",
@@ -69,6 +70,7 @@
69
70
  "./entities/project": "./dist/entities/project.js",
70
71
  "./entities/settings": "./dist/entities/settings.js",
71
72
  "./events": "./dist/events.js",
73
+ "./example": "./dist/example.js",
72
74
  "./feature": "./dist/feature.js",
73
75
  "./handlers": "./dist/handlers/index.js",
74
76
  "./handlers/billing.handlers": "./dist/handlers/billing.handlers.js",
package/src/example.ts ADDED
@@ -0,0 +1,33 @@
1
+ const example = {
2
+ id: 'saas-boilerplate',
3
+ title: 'SaaS Boilerplate',
4
+ summary:
5
+ 'Multi-tenant SaaS foundation with orgs, projects, settings, billing usage, and RBAC.',
6
+ tags: ['saas', 'multi-tenant', 'billing', 'rbac'],
7
+ kind: 'template',
8
+ visibility: 'public',
9
+ docs: {
10
+ rootDocId: 'docs.examples.saas-boilerplate',
11
+ },
12
+ entrypoints: {
13
+ packageName: '@lssm/example.saas-boilerplate',
14
+ feature: './feature',
15
+ contracts: './contracts',
16
+ presentations: './presentations',
17
+ handlers: './handlers',
18
+ docs: './docs',
19
+ },
20
+ surfaces: {
21
+ templates: true,
22
+ sandbox: {
23
+ enabled: true,
24
+ modes: ['playground', 'specs', 'builder', 'markdown', 'evolution'],
25
+ },
26
+ studio: { enabled: true, installable: true },
27
+ mcp: { enabled: true },
28
+ },
29
+ } as const;
30
+
31
+ export default example;
32
+
33
+
package/src/index.ts CHANGED
@@ -7,6 +7,7 @@ export * from './events';
7
7
  export * from './handlers';
8
8
  export * from './presentations';
9
9
  export * from './feature';
10
+ export { default as example } from './example';
10
11
  import './docs';
11
12
 
12
13
  // Schema composition configuration