@lssm/example.service-business-os 0.0.0-canary-20251217083314 → 1.41.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 (174) hide show
  1. package/dist/client/client.contracts.js +1 -33
  2. package/dist/client/client.schema.js +1 -78
  3. package/dist/client/index.js +1 -4
  4. package/dist/contracts/index.js +1 -17
  5. package/dist/docs/index.js +1 -1
  6. package/dist/docs/service-business-os.docblock.js +5 -62
  7. package/dist/entities/index.js +1 -289
  8. package/dist/events.js +1 -178
  9. package/dist/example.js +1 -45
  10. package/dist/handlers/index.js +1 -5
  11. package/dist/index.js +1 -17
  12. package/dist/invoice/index.js +1 -4
  13. package/dist/invoice/invoice.contracts.js +1 -33
  14. package/dist/invoice/invoice.schema.js +1 -78
  15. package/dist/job/index.js +1 -4
  16. package/dist/job/job.contracts.js +1 -119
  17. package/dist/job/job.schema.js +1 -99
  18. package/dist/payment/index.js +1 -4
  19. package/dist/payment/payment.contracts.js +1 -33
  20. package/dist/payment/payment.schema.js +1 -74
  21. package/dist/presentations/index.js +1 -17
  22. package/dist/presentations.js +1 -148
  23. package/dist/quote/index.js +1 -4
  24. package/dist/quote/quote.contracts.js +1 -57
  25. package/dist/quote/quote.schema.js +1 -115
  26. package/dist/service.feature.js +1 -162
  27. package/package.json +36 -37
  28. package/dist/client/client.contracts.d.ts +0 -64
  29. package/dist/client/client.schema.d.ts +0 -67
  30. package/dist/client/index.d.ts +0 -3
  31. package/dist/contracts/index.d.ts +0 -11
  32. package/dist/docs/index.d.ts +0 -1
  33. package/dist/docs/service-business-os.docblock.d.ts +0 -1
  34. package/dist/entities/index.d.ts +0 -167
  35. package/dist/events.d.ts +0 -336
  36. package/dist/example.d.ts +0 -36
  37. package/dist/handlers/index.d.ts +0 -12
  38. package/dist/index.d.ts +0 -11
  39. package/dist/invoice/index.d.ts +0 -3
  40. package/dist/invoice/invoice.contracts.d.ts +0 -64
  41. package/dist/invoice/invoice.schema.d.ts +0 -67
  42. package/dist/job/index.d.ts +0 -3
  43. package/dist/job/job.contracts.d.ts +0 -237
  44. package/dist/job/job.schema.d.ts +0 -84
  45. package/dist/libs/contracts/dist/capabilities/openbanking.js +0 -88
  46. package/dist/libs/contracts/dist/client/index.js +0 -5
  47. package/dist/libs/contracts/dist/client/react/feature-render.js +0 -2
  48. package/dist/libs/contracts/dist/client/react/form-render.js +0 -4
  49. package/dist/libs/contracts/dist/client/react/index.js +0 -4
  50. package/dist/libs/contracts/dist/contract-registry/index.js +0 -1
  51. package/dist/libs/contracts/dist/contract-registry/schemas.js +0 -60
  52. package/dist/libs/contracts/dist/docs/PUBLISHING.docblock.js +0 -16
  53. package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js +0 -16
  54. package/dist/libs/contracts/dist/docs/index.js +0 -29
  55. package/dist/libs/contracts/dist/docs/presentations.js +0 -71
  56. package/dist/libs/contracts/dist/docs/registry.js +0 -44
  57. package/dist/libs/contracts/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +0 -16
  58. package/dist/libs/contracts/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +0 -16
  59. package/dist/libs/contracts/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +0 -16
  60. package/dist/libs/contracts/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +0 -16
  61. package/dist/libs/contracts/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +0 -16
  62. package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js +0 -80
  63. package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js +0 -57
  64. package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js +0 -16
  65. package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js +0 -357
  66. package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js +0 -37
  67. package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js +0 -16
  68. package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js +0 -20
  69. package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js +0 -48
  70. package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js +0 -79
  71. package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js +0 -84
  72. package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js +0 -45
  73. package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js +0 -67
  74. package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js +0 -40
  75. package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js +0 -69
  76. package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js +0 -47
  77. package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js +0 -62
  78. package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js +0 -155
  79. package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js +0 -20
  80. package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js +0 -101
  81. package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js +0 -20
  82. package/dist/libs/contracts/dist/events.js +0 -10
  83. package/dist/libs/contracts/dist/experiments/evaluator.js +0 -1
  84. package/dist/libs/contracts/dist/index.js +0 -71
  85. package/dist/libs/contracts/dist/install.js +0 -2
  86. package/dist/libs/contracts/dist/integrations/contracts.js +0 -377
  87. package/dist/libs/contracts/dist/integrations/index.js +0 -18
  88. package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js +0 -228
  89. package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js +0 -159
  90. package/dist/libs/contracts/dist/integrations/openbanking/contracts/index.js +0 -3
  91. package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js +0 -210
  92. package/dist/libs/contracts/dist/integrations/openbanking/models.js +0 -242
  93. package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js +0 -13
  94. package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js +0 -52
  95. package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js +0 -75
  96. package/dist/libs/contracts/dist/integrations/providers/gmail.js +0 -87
  97. package/dist/libs/contracts/dist/integrations/providers/google-calendar.js +0 -66
  98. package/dist/libs/contracts/dist/integrations/providers/index.js +0 -11
  99. package/dist/libs/contracts/dist/integrations/providers/mistral.js +0 -68
  100. package/dist/libs/contracts/dist/integrations/providers/postmark.js +0 -68
  101. package/dist/libs/contracts/dist/integrations/providers/powens.js +0 -116
  102. package/dist/libs/contracts/dist/integrations/providers/qdrant.js +0 -73
  103. package/dist/libs/contracts/dist/integrations/providers/registry.js +0 -10
  104. package/dist/libs/contracts/dist/integrations/providers/stripe.js +0 -83
  105. package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js +0 -61
  106. package/dist/libs/contracts/dist/jsonschema.js +0 -1
  107. package/dist/libs/contracts/dist/knowledge/contracts.js +0 -306
  108. package/dist/libs/contracts/dist/knowledge/index.js +0 -7
  109. package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js +0 -34
  110. package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js +0 -34
  111. package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js +0 -38
  112. package/dist/libs/contracts/dist/knowledge/spaces/index.js +0 -6
  113. package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js +0 -34
  114. package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js +0 -37
  115. package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js +0 -34
  116. package/dist/libs/contracts/dist/llm/exporters.js +0 -19
  117. package/dist/libs/contracts/dist/llm/index.js +0 -2
  118. package/dist/libs/contracts/dist/llm/prompts.js +0 -1
  119. package/dist/libs/contracts/dist/onboarding-base.js +0 -196
  120. package/dist/libs/contracts/dist/openapi.js +0 -1
  121. package/dist/libs/contracts/dist/ownership.js +0 -21
  122. package/dist/libs/contracts/dist/presentations.js +0 -1
  123. package/dist/libs/contracts/dist/presentations.v2.js +0 -11
  124. package/dist/libs/contracts/dist/prompt.js +0 -1
  125. package/dist/libs/contracts/dist/promptRegistry.js +0 -1
  126. package/dist/libs/contracts/dist/regenerator/index.js +0 -1
  127. package/dist/libs/contracts/dist/regenerator/service.js +0 -6
  128. package/dist/libs/contracts/dist/registry.js +0 -2
  129. package/dist/libs/contracts/dist/resources.js +0 -1
  130. package/dist/libs/contracts/dist/schema/dist/EnumType.js +0 -2
  131. package/dist/libs/contracts/dist/schema/dist/FieldType.js +0 -49
  132. package/dist/libs/contracts/dist/schema/dist/ScalarTypeEnum.js +0 -236
  133. package/dist/libs/contracts/dist/schema/dist/SchemaModel.js +0 -34
  134. package/dist/libs/contracts/dist/schema/dist/entity/defineEntity.js +0 -1
  135. package/dist/libs/contracts/dist/schema/dist/entity/index.js +0 -2
  136. package/dist/libs/contracts/dist/schema/dist/entity/types.js +0 -1
  137. package/dist/libs/contracts/dist/schema/dist/index.js +0 -6
  138. package/dist/libs/contracts/dist/server/graphql-pothos.js +0 -6
  139. package/dist/libs/contracts/dist/server/index.js +0 -8
  140. package/dist/libs/contracts/dist/server/mcp/createMcpServer.js +0 -4
  141. package/dist/libs/contracts/dist/server/mcp/registerPresentations.js +0 -2
  142. package/dist/libs/contracts/dist/server/mcp/registerPrompts.js +0 -1
  143. package/dist/libs/contracts/dist/server/mcp/registerResources.js +0 -2
  144. package/dist/libs/contracts/dist/server/mcp/registerTools.js +0 -1
  145. package/dist/libs/contracts/dist/server/provider-mcp.js +0 -1
  146. package/dist/libs/contracts/dist/server/rest-elysia.js +0 -1
  147. package/dist/libs/contracts/dist/server/rest-express.js +0 -1
  148. package/dist/libs/contracts/dist/server/rest-generic.js +0 -1
  149. package/dist/libs/contracts/dist/server/rest-next-app.js +0 -1
  150. package/dist/libs/contracts/dist/server/rest-next-pages.js +0 -1
  151. package/dist/libs/contracts/dist/spec.js +0 -34
  152. package/dist/libs/contracts/dist/telemetry/index.js +0 -1
  153. package/dist/libs/contracts/dist/telemetry/tracker.js +0 -1
  154. package/dist/libs/contracts/dist/tests/index.js +0 -1
  155. package/dist/libs/contracts/dist/tests/runner.js +0 -2
  156. package/dist/libs/contracts/dist/workflow/index.js +0 -1
  157. package/dist/libs/contracts/dist/workflow/runner.js +0 -1
  158. package/dist/libs/schema/dist/EnumType.js +0 -2
  159. package/dist/libs/schema/dist/FieldType.js +0 -49
  160. package/dist/libs/schema/dist/ScalarTypeEnum.js +0 -236
  161. package/dist/libs/schema/dist/SchemaModel.js +0 -39
  162. package/dist/libs/schema/dist/entity/defineEntity.js +0 -236
  163. package/dist/libs/schema/dist/entity/index.js +0 -2
  164. package/dist/libs/schema/dist/entity/types.js +0 -1
  165. package/dist/libs/schema/dist/index.js +0 -6
  166. package/dist/payment/index.d.ts +0 -3
  167. package/dist/payment/payment.contracts.d.ts +0 -60
  168. package/dist/payment/payment.schema.d.ts +0 -63
  169. package/dist/presentations/index.d.ts +0 -8
  170. package/dist/presentations.d.ts +0 -12
  171. package/dist/quote/index.d.ts +0 -3
  172. package/dist/quote/quote.contracts.d.ts +0 -134
  173. package/dist/quote/quote.schema.d.ts +0 -100
  174. package/dist/service.feature.d.ts +0 -6
@@ -1,74 +1 @@
1
- import { ScalarTypeEnum } from "../libs/schema/dist/ScalarTypeEnum.js";
2
- import { defineSchemaModel } from "../libs/schema/dist/SchemaModel.js";
3
- import "../libs/schema/dist/index.js";
4
-
5
- //#region src/payment/payment.schema.ts
6
- /**
7
- * Payment applied to invoice.
8
- */
9
- const PaymentModel = defineSchemaModel({
10
- name: "Payment",
11
- description: "Payment applied to invoice",
12
- fields: {
13
- id: {
14
- type: ScalarTypeEnum.String_unsecure(),
15
- isOptional: false
16
- },
17
- invoiceId: {
18
- type: ScalarTypeEnum.String_unsecure(),
19
- isOptional: false
20
- },
21
- amount: {
22
- type: ScalarTypeEnum.Float_unsecure(),
23
- isOptional: false
24
- },
25
- currency: {
26
- type: ScalarTypeEnum.String_unsecure(),
27
- isOptional: false
28
- },
29
- method: {
30
- type: ScalarTypeEnum.String_unsecure(),
31
- isOptional: false
32
- },
33
- reference: {
34
- type: ScalarTypeEnum.String_unsecure(),
35
- isOptional: true
36
- },
37
- receivedAt: {
38
- type: ScalarTypeEnum.DateTime(),
39
- isOptional: false
40
- }
41
- }
42
- });
43
- /**
44
- * Input for recording a payment.
45
- */
46
- const RecordPaymentInputModel = defineSchemaModel({
47
- name: "RecordPaymentInput",
48
- description: "Input for recording a payment",
49
- fields: {
50
- invoiceId: {
51
- type: ScalarTypeEnum.String_unsecure(),
52
- isOptional: false
53
- },
54
- amount: {
55
- type: ScalarTypeEnum.Float_unsecure(),
56
- isOptional: false
57
- },
58
- method: {
59
- type: ScalarTypeEnum.String_unsecure(),
60
- isOptional: false
61
- },
62
- reference: {
63
- type: ScalarTypeEnum.String_unsecure(),
64
- isOptional: true
65
- },
66
- receivedAt: {
67
- type: ScalarTypeEnum.DateTime(),
68
- isOptional: true
69
- }
70
- }
71
- });
72
-
73
- //#endregion
74
- export { PaymentModel, RecordPaymentInputModel };
1
+ import{ScalarTypeEnum as e,defineSchemaModel as t}from"@lssm/lib.schema";const n=t({name:`Payment`,description:`Payment applied to invoice`,fields:{id:{type:e.String_unsecure(),isOptional:!1},invoiceId:{type:e.String_unsecure(),isOptional:!1},amount:{type:e.Float_unsecure(),isOptional:!1},currency:{type:e.String_unsecure(),isOptional:!1},method:{type:e.String_unsecure(),isOptional:!1},reference:{type:e.String_unsecure(),isOptional:!0},receivedAt:{type:e.DateTime(),isOptional:!1}}}),r=t({name:`RecordPaymentInput`,description:`Input for recording a payment`,fields:{invoiceId:{type:e.String_unsecure(),isOptional:!1},amount:{type:e.Float_unsecure(),isOptional:!1},method:{type:e.String_unsecure(),isOptional:!1},reference:{type:e.String_unsecure(),isOptional:!0},receivedAt:{type:e.DateTime(),isOptional:!0}}});export{n as PaymentModel,r as RecordPaymentInputModel};
@@ -1,17 +1 @@
1
- //#region src/presentations/index.ts
2
- /**
3
- * Presentation descriptors for Service Business OS.
4
- * These names map to renderers in Studio (react/markdown) to keep specs multi-surface.
5
- */
6
- const ServiceBusinessPresentations = [
7
- "service-business-os.dashboard",
8
- "service-business-os.client.list",
9
- "service-business-os.quote.list",
10
- "service-business-os.quote.detail",
11
- "service-business-os.job.board",
12
- "service-business-os.invoice.list",
13
- "service-business-os.payment.list"
14
- ];
15
-
16
- //#endregion
17
- export { ServiceBusinessPresentations };
1
+ const e=[`service-business-os.dashboard`,`service-business-os.client.list`,`service-business-os.quote.list`,`service-business-os.quote.detail`,`service-business-os.job.board`,`service-business-os.invoice.list`,`service-business-os.payment.list`];export{e as ServiceBusinessPresentations};
@@ -1,148 +1 @@
1
- //#region src/presentations.ts
2
- const ServiceDashboardPresentation = {
3
- meta: {
4
- name: "service-business-os.dashboard",
5
- version: 1,
6
- description: "Service business dashboard with overview metrics",
7
- domain: "services",
8
- owners: ["@service-os"],
9
- tags: ["services", "dashboard"]
10
- },
11
- source: {
12
- type: "component",
13
- framework: "react",
14
- componentKey: "ServiceDashboard"
15
- },
16
- targets: ["react", "markdown"],
17
- policy: { flags: ["service.dashboard.enabled"] }
18
- };
19
- const ClientListPresentation = {
20
- meta: {
21
- name: "service-business-os.client.list",
22
- version: 1,
23
- description: "List of service clients",
24
- domain: "services",
25
- owners: ["@service-os"],
26
- tags: [
27
- "services",
28
- "clients",
29
- "list"
30
- ]
31
- },
32
- source: {
33
- type: "component",
34
- framework: "react",
35
- componentKey: "ClientList"
36
- },
37
- targets: ["react", "markdown"],
38
- policy: { flags: ["service.clients.enabled"] }
39
- };
40
- const QuoteListPresentation = {
41
- meta: {
42
- name: "service-business-os.quote.list",
43
- version: 1,
44
- description: "List of quotes with status",
45
- domain: "services",
46
- owners: ["@service-os"],
47
- tags: [
48
- "services",
49
- "quotes",
50
- "list"
51
- ]
52
- },
53
- source: {
54
- type: "component",
55
- framework: "react",
56
- componentKey: "QuoteList"
57
- },
58
- targets: ["react", "markdown"],
59
- policy: { flags: ["service.quotes.enabled"] }
60
- };
61
- const QuoteDetailPresentation = {
62
- meta: {
63
- name: "service-business-os.quote.detail",
64
- version: 1,
65
- description: "Quote detail with line items",
66
- domain: "services",
67
- owners: ["@service-os"],
68
- tags: [
69
- "services",
70
- "quote",
71
- "detail"
72
- ]
73
- },
74
- source: {
75
- type: "component",
76
- framework: "react",
77
- componentKey: "QuoteDetail"
78
- },
79
- targets: ["react", "markdown"],
80
- policy: { flags: ["service.quotes.enabled"] }
81
- };
82
- const JobBoardPresentation = {
83
- meta: {
84
- name: "service-business-os.job.board",
85
- version: 1,
86
- description: "Job board with kanban view",
87
- domain: "services",
88
- owners: ["@service-os"],
89
- tags: [
90
- "services",
91
- "jobs",
92
- "board",
93
- "kanban"
94
- ]
95
- },
96
- source: {
97
- type: "component",
98
- framework: "react",
99
- componentKey: "JobBoard"
100
- },
101
- targets: ["react"],
102
- policy: { flags: ["service.jobs.enabled"] }
103
- };
104
- const InvoiceListPresentation = {
105
- meta: {
106
- name: "service-business-os.invoice.list",
107
- version: 1,
108
- description: "List of invoices with payment status",
109
- domain: "services",
110
- owners: ["@service-os"],
111
- tags: [
112
- "services",
113
- "invoices",
114
- "list"
115
- ]
116
- },
117
- source: {
118
- type: "component",
119
- framework: "react",
120
- componentKey: "InvoiceList"
121
- },
122
- targets: ["react", "markdown"],
123
- policy: { flags: ["service.invoices.enabled"] }
124
- };
125
- const PaymentListPresentation = {
126
- meta: {
127
- name: "service-business-os.payment.list",
128
- version: 1,
129
- description: "List of payments received",
130
- domain: "services",
131
- owners: ["@service-os"],
132
- tags: [
133
- "services",
134
- "payments",
135
- "list"
136
- ]
137
- },
138
- source: {
139
- type: "component",
140
- framework: "react",
141
- componentKey: "PaymentList"
142
- },
143
- targets: ["react", "markdown"],
144
- policy: { flags: ["service.payments.enabled"] }
145
- };
146
-
147
- //#endregion
148
- export { ClientListPresentation, InvoiceListPresentation, JobBoardPresentation, PaymentListPresentation, QuoteDetailPresentation, QuoteListPresentation, ServiceDashboardPresentation };
1
+ const e={meta:{name:`service-business-os.dashboard`,version:1,description:`Service business dashboard with overview metrics`,domain:`services`,owners:[`@service-os`],tags:[`services`,`dashboard`]},source:{type:`component`,framework:`react`,componentKey:`ServiceDashboard`},targets:[`react`,`markdown`],policy:{flags:[`service.dashboard.enabled`]}},t={meta:{name:`service-business-os.client.list`,version:1,description:`List of service clients`,domain:`services`,owners:[`@service-os`],tags:[`services`,`clients`,`list`]},source:{type:`component`,framework:`react`,componentKey:`ClientList`},targets:[`react`,`markdown`],policy:{flags:[`service.clients.enabled`]}},n={meta:{name:`service-business-os.quote.list`,version:1,description:`List of quotes with status`,domain:`services`,owners:[`@service-os`],tags:[`services`,`quotes`,`list`]},source:{type:`component`,framework:`react`,componentKey:`QuoteList`},targets:[`react`,`markdown`],policy:{flags:[`service.quotes.enabled`]}},r={meta:{name:`service-business-os.quote.detail`,version:1,description:`Quote detail with line items`,domain:`services`,owners:[`@service-os`],tags:[`services`,`quote`,`detail`]},source:{type:`component`,framework:`react`,componentKey:`QuoteDetail`},targets:[`react`,`markdown`],policy:{flags:[`service.quotes.enabled`]}},i={meta:{name:`service-business-os.job.board`,version:1,description:`Job board with kanban view`,domain:`services`,owners:[`@service-os`],tags:[`services`,`jobs`,`board`,`kanban`]},source:{type:`component`,framework:`react`,componentKey:`JobBoard`},targets:[`react`],policy:{flags:[`service.jobs.enabled`]}},a={meta:{name:`service-business-os.invoice.list`,version:1,description:`List of invoices with payment status`,domain:`services`,owners:[`@service-os`],tags:[`services`,`invoices`,`list`]},source:{type:`component`,framework:`react`,componentKey:`InvoiceList`},targets:[`react`,`markdown`],policy:{flags:[`service.invoices.enabled`]}},o={meta:{name:`service-business-os.payment.list`,version:1,description:`List of payments received`,domain:`services`,owners:[`@service-os`],tags:[`services`,`payments`,`list`]},source:{type:`component`,framework:`react`,componentKey:`PaymentList`},targets:[`react`,`markdown`],policy:{flags:[`service.payments.enabled`]}};export{t as ClientListPresentation,a as InvoiceListPresentation,i as JobBoardPresentation,o as PaymentListPresentation,r as QuoteDetailPresentation,n as QuoteListPresentation,e as ServiceDashboardPresentation};
@@ -1,4 +1 @@
1
- import { AcceptQuoteInputModel, CreateQuoteInputModel, QuoteModel } from "./quote.schema.js";
2
- import { AcceptQuoteContract, CreateQuoteContract } from "./quote.contracts.js";
3
-
4
- export { AcceptQuoteContract, AcceptQuoteInputModel, CreateQuoteContract, CreateQuoteInputModel, QuoteModel };
1
+ import{AcceptQuoteInputModel as e,CreateQuoteInputModel as t,QuoteModel as n}from"./quote.schema.js";import{AcceptQuoteContract as r,CreateQuoteContract as i}from"./quote.contracts.js";export{r as AcceptQuoteContract,e as AcceptQuoteInputModel,i as CreateQuoteContract,t as CreateQuoteInputModel,n as QuoteModel};
@@ -1,57 +1 @@
1
- import { defineCommand } from "../libs/contracts/dist/spec.js";
2
- import "../libs/contracts/dist/index.js";
3
- import { AcceptQuoteInputModel, CreateQuoteInputModel, QuoteModel } from "./quote.schema.js";
4
-
5
- //#region src/quote/quote.contracts.ts
6
- const OWNERS = ["@examples.service-business-os"];
7
- /**
8
- * Create a new quote.
9
- */
10
- const CreateQuoteContract = defineCommand({
11
- meta: {
12
- name: "service.quote.create",
13
- version: 1,
14
- stability: "stable",
15
- owners: [...OWNERS],
16
- tags: [
17
- "service-business-os",
18
- "quote",
19
- "create"
20
- ],
21
- description: "Create a quote/proposal.",
22
- goal: "Quote clients.",
23
- context: "Quote creation."
24
- },
25
- io: {
26
- input: CreateQuoteInputModel,
27
- output: QuoteModel
28
- },
29
- policy: { auth: "user" }
30
- });
31
- /**
32
- * Accept a quote.
33
- */
34
- const AcceptQuoteContract = defineCommand({
35
- meta: {
36
- name: "service.quote.accept",
37
- version: 1,
38
- stability: "stable",
39
- owners: [...OWNERS],
40
- tags: [
41
- "service-business-os",
42
- "quote",
43
- "accept"
44
- ],
45
- description: "Accept a quote.",
46
- goal: "Confirm quote.",
47
- context: "Quote acceptance."
48
- },
49
- io: {
50
- input: AcceptQuoteInputModel,
51
- output: QuoteModel
52
- },
53
- policy: { auth: "user" }
54
- });
55
-
56
- //#endregion
57
- export { AcceptQuoteContract, CreateQuoteContract };
1
+ import{AcceptQuoteInputModel as e,CreateQuoteInputModel as t,QuoteModel as n}from"./quote.schema.js";import{defineCommand as r}from"@lssm/lib.contracts";const i=[`@examples.service-business-os`],a=r({meta:{name:`service.quote.create`,version:1,stability:`stable`,owners:[...i],tags:[`service-business-os`,`quote`,`create`],description:`Create a quote/proposal.`,goal:`Quote clients.`,context:`Quote creation.`},io:{input:t,output:n},policy:{auth:`user`}}),o=r({meta:{name:`service.quote.accept`,version:1,stability:`stable`,owners:[...i],tags:[`service-business-os`,`quote`,`accept`],description:`Accept a quote.`,goal:`Confirm quote.`,context:`Quote acceptance.`},io:{input:e,output:n},policy:{auth:`user`}});export{o as AcceptQuoteContract,a as CreateQuoteContract};
@@ -1,115 +1 @@
1
- import { ScalarTypeEnum } from "../libs/schema/dist/ScalarTypeEnum.js";
2
- import { defineSchemaModel } from "../libs/schema/dist/SchemaModel.js";
3
- import "../libs/schema/dist/index.js";
4
-
5
- //#region src/quote/quote.schema.ts
6
- /**
7
- * Quote/proposal.
8
- */
9
- const QuoteModel = defineSchemaModel({
10
- name: "Quote",
11
- description: "Quote/proposal",
12
- fields: {
13
- id: {
14
- type: ScalarTypeEnum.String_unsecure(),
15
- isOptional: false
16
- },
17
- clientId: {
18
- type: ScalarTypeEnum.String_unsecure(),
19
- isOptional: false
20
- },
21
- title: {
22
- type: ScalarTypeEnum.String_unsecure(),
23
- isOptional: false
24
- },
25
- description: {
26
- type: ScalarTypeEnum.String_unsecure(),
27
- isOptional: true
28
- },
29
- amount: {
30
- type: ScalarTypeEnum.Float_unsecure(),
31
- isOptional: false
32
- },
33
- currency: {
34
- type: ScalarTypeEnum.String_unsecure(),
35
- isOptional: false
36
- },
37
- status: {
38
- type: ScalarTypeEnum.String_unsecure(),
39
- isOptional: false
40
- },
41
- validUntil: {
42
- type: ScalarTypeEnum.DateTime(),
43
- isOptional: true
44
- },
45
- createdAt: {
46
- type: ScalarTypeEnum.DateTime(),
47
- isOptional: false
48
- }
49
- }
50
- });
51
- /**
52
- * Input for creating a quote.
53
- */
54
- const CreateQuoteInputModel = defineSchemaModel({
55
- name: "CreateQuoteInput",
56
- description: "Input for creating a quote",
57
- fields: {
58
- clientId: {
59
- type: ScalarTypeEnum.String_unsecure(),
60
- isOptional: false
61
- },
62
- title: {
63
- type: ScalarTypeEnum.String_unsecure(),
64
- isOptional: false
65
- },
66
- description: {
67
- type: ScalarTypeEnum.String_unsecure(),
68
- isOptional: true
69
- },
70
- amount: {
71
- type: ScalarTypeEnum.Float_unsecure(),
72
- isOptional: false
73
- },
74
- currency: {
75
- type: ScalarTypeEnum.String_unsecure(),
76
- isOptional: true
77
- },
78
- validUntil: {
79
- type: ScalarTypeEnum.DateTime(),
80
- isOptional: true
81
- },
82
- orgId: {
83
- type: ScalarTypeEnum.String_unsecure(),
84
- isOptional: false
85
- },
86
- ownerId: {
87
- type: ScalarTypeEnum.String_unsecure(),
88
- isOptional: false
89
- }
90
- }
91
- });
92
- /**
93
- * Input for accepting a quote.
94
- */
95
- const AcceptQuoteInputModel = defineSchemaModel({
96
- name: "AcceptQuoteInput",
97
- description: "Input for accepting a quote",
98
- fields: {
99
- quoteId: {
100
- type: ScalarTypeEnum.String_unsecure(),
101
- isOptional: false
102
- },
103
- acceptedBy: {
104
- type: ScalarTypeEnum.String_unsecure(),
105
- isOptional: false
106
- },
107
- notes: {
108
- type: ScalarTypeEnum.String_unsecure(),
109
- isOptional: true
110
- }
111
- }
112
- });
113
-
114
- //#endregion
115
- export { AcceptQuoteInputModel, CreateQuoteInputModel, QuoteModel };
1
+ import{ScalarTypeEnum as e,defineSchemaModel as t}from"@lssm/lib.schema";const n=t({name:`Quote`,description:`Quote/proposal`,fields:{id:{type:e.String_unsecure(),isOptional:!1},clientId:{type:e.String_unsecure(),isOptional:!1},title:{type:e.String_unsecure(),isOptional:!1},description:{type:e.String_unsecure(),isOptional:!0},amount:{type:e.Float_unsecure(),isOptional:!1},currency:{type:e.String_unsecure(),isOptional:!1},status:{type:e.String_unsecure(),isOptional:!1},validUntil:{type:e.DateTime(),isOptional:!0},createdAt:{type:e.DateTime(),isOptional:!1}}}),r=t({name:`CreateQuoteInput`,description:`Input for creating a quote`,fields:{clientId:{type:e.String_unsecure(),isOptional:!1},title:{type:e.String_unsecure(),isOptional:!1},description:{type:e.String_unsecure(),isOptional:!0},amount:{type:e.Float_unsecure(),isOptional:!1},currency:{type:e.String_unsecure(),isOptional:!0},validUntil:{type:e.DateTime(),isOptional:!0},orgId:{type:e.String_unsecure(),isOptional:!1},ownerId:{type:e.String_unsecure(),isOptional:!1}}}),i=t({name:`AcceptQuoteInput`,description:`Input for accepting a quote`,fields:{quoteId:{type:e.String_unsecure(),isOptional:!1},acceptedBy:{type:e.String_unsecure(),isOptional:!1},notes:{type:e.String_unsecure(),isOptional:!0}}});export{i as AcceptQuoteInputModel,r as CreateQuoteInputModel,n as QuoteModel};
@@ -1,162 +1 @@
1
- //#region src/service.feature.ts
2
- const ServiceBusinessFeature = {
3
- meta: {
4
- key: "service-business-os",
5
- title: "Service Business OS",
6
- description: "Quotes → jobs → invoices → payments for field services and agencies.",
7
- domain: "services",
8
- owners: ["@service-os"],
9
- tags: [
10
- "services",
11
- "quotes",
12
- "jobs",
13
- "invoices",
14
- "payments"
15
- ],
16
- stability: "experimental"
17
- },
18
- operations: [
19
- {
20
- name: "service.client.create",
21
- version: 1
22
- },
23
- {
24
- name: "service.quote.create",
25
- version: 1
26
- },
27
- {
28
- name: "service.quote.accept",
29
- version: 1
30
- },
31
- {
32
- name: "service.job.schedule",
33
- version: 1
34
- },
35
- {
36
- name: "service.job.complete",
37
- version: 1
38
- },
39
- {
40
- name: "service.invoice.issue",
41
- version: 1
42
- },
43
- {
44
- name: "service.payment.record",
45
- version: 1
46
- },
47
- {
48
- name: "service.job.list",
49
- version: 1
50
- }
51
- ],
52
- events: [
53
- {
54
- name: "service.quote.sent",
55
- version: 1
56
- },
57
- {
58
- name: "service.quote.accepted",
59
- version: 1
60
- },
61
- {
62
- name: "service.job.scheduled",
63
- version: 1
64
- },
65
- {
66
- name: "service.job.completed",
67
- version: 1
68
- },
69
- {
70
- name: "service.invoice.issued",
71
- version: 1
72
- },
73
- {
74
- name: "service.payment.received",
75
- version: 1
76
- }
77
- ],
78
- presentations: [
79
- {
80
- name: "service-business-os.dashboard",
81
- version: 1
82
- },
83
- {
84
- name: "service-business-os.client.list",
85
- version: 1
86
- },
87
- {
88
- name: "service-business-os.quote.list",
89
- version: 1
90
- },
91
- {
92
- name: "service-business-os.quote.detail",
93
- version: 1
94
- },
95
- {
96
- name: "service-business-os.job.board",
97
- version: 1
98
- },
99
- {
100
- name: "service-business-os.invoice.list",
101
- version: 1
102
- },
103
- {
104
- name: "service-business-os.payment.list",
105
- version: 1
106
- }
107
- ],
108
- presentationsTargets: [
109
- {
110
- name: "service-business-os.dashboard",
111
- version: 1,
112
- targets: ["react", "markdown"]
113
- },
114
- {
115
- name: "service-business-os.quote.list",
116
- version: 1,
117
- targets: ["react", "markdown"]
118
- },
119
- {
120
- name: "service-business-os.invoice.list",
121
- version: 1,
122
- targets: ["react", "markdown"]
123
- }
124
- ],
125
- capabilities: {
126
- requires: [
127
- {
128
- key: "identity",
129
- version: 1
130
- },
131
- {
132
- key: "audit-trail",
133
- version: 1
134
- },
135
- {
136
- key: "notifications",
137
- version: 1
138
- },
139
- {
140
- key: "files",
141
- version: 1
142
- }
143
- ],
144
- provides: [
145
- {
146
- key: "quotes",
147
- version: 1
148
- },
149
- {
150
- key: "jobs",
151
- version: 1
152
- },
153
- {
154
- key: "invoices",
155
- version: 1
156
- }
157
- ]
158
- }
159
- };
160
-
161
- //#endregion
162
- export { ServiceBusinessFeature };
1
+ const e={meta:{key:`service-business-os`,title:`Service Business OS`,description:`Quotes → jobs → invoices → payments for field services and agencies.`,domain:`services`,owners:[`@service-os`],tags:[`services`,`quotes`,`jobs`,`invoices`,`payments`],stability:`experimental`},operations:[{name:`service.client.create`,version:1},{name:`service.quote.create`,version:1},{name:`service.quote.accept`,version:1},{name:`service.job.schedule`,version:1},{name:`service.job.complete`,version:1},{name:`service.invoice.issue`,version:1},{name:`service.payment.record`,version:1},{name:`service.job.list`,version:1}],events:[{name:`service.quote.sent`,version:1},{name:`service.quote.accepted`,version:1},{name:`service.job.scheduled`,version:1},{name:`service.job.completed`,version:1},{name:`service.invoice.issued`,version:1},{name:`service.payment.received`,version:1}],presentations:[{name:`service-business-os.dashboard`,version:1},{name:`service-business-os.client.list`,version:1},{name:`service-business-os.quote.list`,version:1},{name:`service-business-os.quote.detail`,version:1},{name:`service-business-os.job.board`,version:1},{name:`service-business-os.invoice.list`,version:1},{name:`service-business-os.payment.list`,version:1}],presentationsTargets:[{name:`service-business-os.dashboard`,version:1,targets:[`react`,`markdown`]},{name:`service-business-os.quote.list`,version:1,targets:[`react`,`markdown`]},{name:`service-business-os.invoice.list`,version:1,targets:[`react`,`markdown`]}],capabilities:{requires:[{key:`identity`,version:1},{key:`audit-trail`,version:1},{key:`notifications`,version:1},{key:`files`,version:1}],provides:[{key:`quotes`,version:1},{key:`jobs`,version:1},{key:`invoices`,version:1}]}};export{e as ServiceBusinessFeature};