@lssm/example.crm-pipeline 0.0.0-canary-20251219202229 → 0.0.0-canary-20251220015515
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$colon$bundle.log +150 -150
- package/.turbo/turbo-build.log +173 -173
- package/CHANGELOG.md +8 -8
- package/dist/entities/company.entity.d.ts +28 -28
- package/dist/entities/contact.entity.d.ts +32 -32
- package/dist/entities/task.entity.d.ts +43 -43
- package/dist/events/contact.event.d.ts +7 -7
- package/dist/events/deal.event.d.ts +29 -29
- package/dist/handlers/deal.handlers.d.ts.map +1 -1
- package/dist/handlers/deal.handlers.js +4 -1
- package/dist/handlers/deal.handlers.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/libs/contracts/dist/capabilities/openbanking.js.map +1 -1
- package/dist/libs/contracts/dist/contract-registry/schemas.js.map +1 -1
- package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js.map +1 -1
- package/dist/libs/contracts/dist/docs/meta.docs.js.map +1 -1
- package/dist/libs/contracts/dist/docs/presentations.js.map +1 -1
- package/dist/libs/contracts/dist/docs/registry.js.map +1 -1
- package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js.map +1 -1
- package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js.map +1 -1
- package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js.map +1 -1
- package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js.map +1 -1
- package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js.map +1 -1
- package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js.map +1 -1
- package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js.map +1 -1
- package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js.map +1 -1
- package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js.map +1 -1
- package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js.map +1 -1
- package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js.map +1 -1
- package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js.map +1 -1
- package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js.map +1 -1
- package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js.map +1 -1
- package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js.map +1 -1
- package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js.map +1 -1
- package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js.map +1 -1
- package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js.map +1 -1
- package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js.map +1 -1
- package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js.map +1 -1
- package/dist/libs/contracts/dist/docs/tech-contracts.docs.js.map +1 -1
- package/dist/libs/contracts/dist/events.js.map +1 -1
- package/dist/libs/contracts/dist/integrations/contracts.js.map +1 -1
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js.map +1 -1
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js.map +1 -1
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js.map +1 -1
- package/dist/libs/contracts/dist/integrations/openbanking/models.js.map +1 -1
- package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js.map +1 -1
- package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js.map +1 -1
- package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js.map +1 -1
- package/dist/libs/contracts/dist/integrations/providers/gmail.js.map +1 -1
- package/dist/libs/contracts/dist/integrations/providers/google-calendar.js.map +1 -1
- package/dist/libs/contracts/dist/integrations/providers/mistral.js.map +1 -1
- package/dist/libs/contracts/dist/integrations/providers/postmark.js.map +1 -1
- package/dist/libs/contracts/dist/integrations/providers/powens.js.map +1 -1
- package/dist/libs/contracts/dist/integrations/providers/qdrant.js.map +1 -1
- package/dist/libs/contracts/dist/integrations/providers/stripe.js.map +1 -1
- package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js.map +1 -1
- package/dist/libs/contracts/dist/knowledge/contracts.js.map +1 -1
- package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js.map +1 -1
- package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js.map +1 -1
- package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js.map +1 -1
- package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js.map +1 -1
- package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js.map +1 -1
- package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js.map +1 -1
- package/dist/libs/contracts/dist/llm/exporters.js.map +1 -1
- package/dist/libs/contracts/dist/onboarding-base.js.map +1 -1
- package/dist/libs/contracts/dist/ownership.js +1 -0
- package/dist/libs/contracts/dist/ownership.js.map +1 -1
- package/dist/libs/contracts/dist/presentations.v2.js.map +1 -1
- package/dist/libs/contracts/dist/regenerator/service.js.map +1 -1
- package/dist/libs/contracts/dist/schema/dist/index.js.map +1 -1
- package/dist/libs/contracts/dist/spec.js.map +1 -1
- package/dist/libs/identity-rbac/dist/contracts/dist/ownership.js +1 -0
- package/dist/libs/identity-rbac/dist/contracts/dist/ownership.js.map +1 -1
- package/dist/modules/audit-trail/dist/libs/contracts/dist/ownership.js +1 -0
- package/dist/modules/audit-trail/dist/libs/contracts/dist/ownership.js.map +1 -1
- package/dist/modules/notifications/dist/libs/contracts/dist/ownership.js +1 -0
- package/dist/modules/notifications/dist/libs/contracts/dist/ownership.js.map +1 -1
- package/package.json +19 -12
- package/src/handlers/deal.handlers.ts +9 -3
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @lssm/example.crm-pipeline
|
|
2
2
|
|
|
3
|
-
## 0.0.0-canary-
|
|
3
|
+
## 0.0.0-canary-20251220015515
|
|
4
4
|
|
|
5
5
|
### Minor Changes
|
|
6
6
|
|
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
### Patch Changes
|
|
10
10
|
|
|
11
11
|
- Updated dependencies [66a5dfd]
|
|
12
|
-
- @lssm/lib.bus@0.0.0-canary-
|
|
13
|
-
- @lssm/lib.contracts@0.0.0-canary-
|
|
14
|
-
- @lssm/lib.identity-rbac@0.0.0-canary-
|
|
15
|
-
- @lssm/lib.jobs@0.0.0-canary-
|
|
16
|
-
- @lssm/lib.schema@0.0.0-canary-
|
|
17
|
-
- @lssm/module.audit-trail@0.0.0-canary-
|
|
18
|
-
- @lssm/module.notifications@0.0.0-canary-
|
|
12
|
+
- @lssm/lib.bus@0.0.0-canary-20251220015515
|
|
13
|
+
- @lssm/lib.contracts@0.0.0-canary-20251220015515
|
|
14
|
+
- @lssm/lib.identity-rbac@0.0.0-canary-20251220015515
|
|
15
|
+
- @lssm/lib.jobs@0.0.0-canary-20251220015515
|
|
16
|
+
- @lssm/lib.schema@0.0.0-canary-20251220015515
|
|
17
|
+
- @lssm/module.audit-trail@0.0.0-canary-20251220015515
|
|
18
|
+
- @lssm/module.notifications@0.0.0-canary-20251220015515
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as _lssm_lib_schema326 from "@lssm/lib.schema";
|
|
2
2
|
|
|
3
3
|
//#region src/entities/company.entity.d.ts
|
|
4
4
|
/**
|
|
5
5
|
* Company size enum.
|
|
6
6
|
*/
|
|
7
|
-
declare const CompanySizeEnum:
|
|
7
|
+
declare const CompanySizeEnum: _lssm_lib_schema326.EntityEnumDef;
|
|
8
8
|
/**
|
|
9
9
|
* Company entity - organization/account.
|
|
10
10
|
*/
|
|
11
|
-
declare const CompanyEntity:
|
|
12
|
-
id:
|
|
13
|
-
name:
|
|
14
|
-
domain:
|
|
15
|
-
website:
|
|
16
|
-
industry:
|
|
17
|
-
size:
|
|
18
|
-
employeeCount:
|
|
19
|
-
annualRevenue:
|
|
20
|
-
organizationId:
|
|
21
|
-
ownerId:
|
|
22
|
-
phone:
|
|
23
|
-
email:
|
|
24
|
-
address:
|
|
25
|
-
city:
|
|
26
|
-
state:
|
|
27
|
-
country:
|
|
28
|
-
postalCode:
|
|
29
|
-
linkedInUrl:
|
|
30
|
-
description:
|
|
31
|
-
tags:
|
|
32
|
-
customFields:
|
|
33
|
-
createdAt:
|
|
34
|
-
updatedAt:
|
|
35
|
-
contacts:
|
|
36
|
-
deals:
|
|
11
|
+
declare const CompanyEntity: _lssm_lib_schema326.EntitySpec<{
|
|
12
|
+
id: _lssm_lib_schema326.EntityScalarField;
|
|
13
|
+
name: _lssm_lib_schema326.EntityScalarField;
|
|
14
|
+
domain: _lssm_lib_schema326.EntityScalarField;
|
|
15
|
+
website: _lssm_lib_schema326.EntityScalarField;
|
|
16
|
+
industry: _lssm_lib_schema326.EntityScalarField;
|
|
17
|
+
size: _lssm_lib_schema326.EntityEnumField;
|
|
18
|
+
employeeCount: _lssm_lib_schema326.EntityScalarField;
|
|
19
|
+
annualRevenue: _lssm_lib_schema326.EntityScalarField;
|
|
20
|
+
organizationId: _lssm_lib_schema326.EntityScalarField;
|
|
21
|
+
ownerId: _lssm_lib_schema326.EntityScalarField;
|
|
22
|
+
phone: _lssm_lib_schema326.EntityScalarField;
|
|
23
|
+
email: _lssm_lib_schema326.EntityScalarField;
|
|
24
|
+
address: _lssm_lib_schema326.EntityScalarField;
|
|
25
|
+
city: _lssm_lib_schema326.EntityScalarField;
|
|
26
|
+
state: _lssm_lib_schema326.EntityScalarField;
|
|
27
|
+
country: _lssm_lib_schema326.EntityScalarField;
|
|
28
|
+
postalCode: _lssm_lib_schema326.EntityScalarField;
|
|
29
|
+
linkedInUrl: _lssm_lib_schema326.EntityScalarField;
|
|
30
|
+
description: _lssm_lib_schema326.EntityScalarField;
|
|
31
|
+
tags: _lssm_lib_schema326.EntityScalarField;
|
|
32
|
+
customFields: _lssm_lib_schema326.EntityScalarField;
|
|
33
|
+
createdAt: _lssm_lib_schema326.EntityScalarField;
|
|
34
|
+
updatedAt: _lssm_lib_schema326.EntityScalarField;
|
|
35
|
+
contacts: _lssm_lib_schema326.EntityRelationField;
|
|
36
|
+
deals: _lssm_lib_schema326.EntityRelationField;
|
|
37
37
|
}>;
|
|
38
38
|
//#endregion
|
|
39
39
|
export { CompanyEntity, CompanySizeEnum };
|
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as _lssm_lib_schema353 from "@lssm/lib.schema";
|
|
2
2
|
|
|
3
3
|
//#region src/entities/contact.entity.d.ts
|
|
4
4
|
/**
|
|
5
5
|
* Contact status enum.
|
|
6
6
|
*/
|
|
7
|
-
declare const ContactStatusEnum:
|
|
7
|
+
declare const ContactStatusEnum: _lssm_lib_schema353.EntityEnumDef;
|
|
8
8
|
/**
|
|
9
9
|
* Contact entity - individual person.
|
|
10
10
|
*/
|
|
11
|
-
declare const ContactEntity:
|
|
12
|
-
id:
|
|
13
|
-
firstName:
|
|
14
|
-
lastName:
|
|
15
|
-
email:
|
|
16
|
-
phone:
|
|
17
|
-
companyId:
|
|
18
|
-
jobTitle:
|
|
19
|
-
status:
|
|
20
|
-
organizationId:
|
|
21
|
-
ownerId:
|
|
22
|
-
source:
|
|
23
|
-
linkedInUrl:
|
|
24
|
-
twitterHandle:
|
|
25
|
-
address:
|
|
26
|
-
city:
|
|
27
|
-
state:
|
|
28
|
-
country:
|
|
29
|
-
postalCode:
|
|
30
|
-
notes:
|
|
31
|
-
tags:
|
|
32
|
-
customFields:
|
|
33
|
-
lastContactedAt:
|
|
34
|
-
nextFollowUpAt:
|
|
35
|
-
createdAt:
|
|
36
|
-
updatedAt:
|
|
37
|
-
company:
|
|
38
|
-
deals:
|
|
39
|
-
tasks:
|
|
40
|
-
activities:
|
|
11
|
+
declare const ContactEntity: _lssm_lib_schema353.EntitySpec<{
|
|
12
|
+
id: _lssm_lib_schema353.EntityScalarField;
|
|
13
|
+
firstName: _lssm_lib_schema353.EntityScalarField;
|
|
14
|
+
lastName: _lssm_lib_schema353.EntityScalarField;
|
|
15
|
+
email: _lssm_lib_schema353.EntityScalarField;
|
|
16
|
+
phone: _lssm_lib_schema353.EntityScalarField;
|
|
17
|
+
companyId: _lssm_lib_schema353.EntityScalarField;
|
|
18
|
+
jobTitle: _lssm_lib_schema353.EntityScalarField;
|
|
19
|
+
status: _lssm_lib_schema353.EntityEnumField;
|
|
20
|
+
organizationId: _lssm_lib_schema353.EntityScalarField;
|
|
21
|
+
ownerId: _lssm_lib_schema353.EntityScalarField;
|
|
22
|
+
source: _lssm_lib_schema353.EntityScalarField;
|
|
23
|
+
linkedInUrl: _lssm_lib_schema353.EntityScalarField;
|
|
24
|
+
twitterHandle: _lssm_lib_schema353.EntityScalarField;
|
|
25
|
+
address: _lssm_lib_schema353.EntityScalarField;
|
|
26
|
+
city: _lssm_lib_schema353.EntityScalarField;
|
|
27
|
+
state: _lssm_lib_schema353.EntityScalarField;
|
|
28
|
+
country: _lssm_lib_schema353.EntityScalarField;
|
|
29
|
+
postalCode: _lssm_lib_schema353.EntityScalarField;
|
|
30
|
+
notes: _lssm_lib_schema353.EntityScalarField;
|
|
31
|
+
tags: _lssm_lib_schema353.EntityScalarField;
|
|
32
|
+
customFields: _lssm_lib_schema353.EntityScalarField;
|
|
33
|
+
lastContactedAt: _lssm_lib_schema353.EntityScalarField;
|
|
34
|
+
nextFollowUpAt: _lssm_lib_schema353.EntityScalarField;
|
|
35
|
+
createdAt: _lssm_lib_schema353.EntityScalarField;
|
|
36
|
+
updatedAt: _lssm_lib_schema353.EntityScalarField;
|
|
37
|
+
company: _lssm_lib_schema353.EntityRelationField;
|
|
38
|
+
deals: _lssm_lib_schema353.EntityRelationField;
|
|
39
|
+
tasks: _lssm_lib_schema353.EntityRelationField;
|
|
40
|
+
activities: _lssm_lib_schema353.EntityRelationField;
|
|
41
41
|
}>;
|
|
42
42
|
//#endregion
|
|
43
43
|
export { ContactEntity, ContactStatusEnum };
|
|
@@ -1,64 +1,64 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as _lssm_lib_schema256 from "@lssm/lib.schema";
|
|
2
2
|
|
|
3
3
|
//#region src/entities/task.entity.d.ts
|
|
4
4
|
/**
|
|
5
5
|
* Task type enum.
|
|
6
6
|
*/
|
|
7
|
-
declare const TaskTypeEnum:
|
|
7
|
+
declare const TaskTypeEnum: _lssm_lib_schema256.EntityEnumDef;
|
|
8
8
|
/**
|
|
9
9
|
* Task priority enum.
|
|
10
10
|
*/
|
|
11
|
-
declare const TaskPriorityEnum:
|
|
11
|
+
declare const TaskPriorityEnum: _lssm_lib_schema256.EntityEnumDef;
|
|
12
12
|
/**
|
|
13
13
|
* Task status enum.
|
|
14
14
|
*/
|
|
15
|
-
declare const TaskStatusEnum:
|
|
15
|
+
declare const TaskStatusEnum: _lssm_lib_schema256.EntityEnumDef;
|
|
16
16
|
/**
|
|
17
17
|
* Task entity - follow-up activities.
|
|
18
18
|
*/
|
|
19
|
-
declare const TaskEntity:
|
|
20
|
-
id:
|
|
21
|
-
title:
|
|
22
|
-
description:
|
|
23
|
-
type:
|
|
24
|
-
priority:
|
|
25
|
-
status:
|
|
26
|
-
dueDate:
|
|
27
|
-
reminderAt:
|
|
28
|
-
contactId:
|
|
29
|
-
dealId:
|
|
30
|
-
companyId:
|
|
31
|
-
organizationId:
|
|
32
|
-
assignedTo:
|
|
33
|
-
createdBy:
|
|
34
|
-
completedAt:
|
|
35
|
-
completedBy:
|
|
36
|
-
createdAt:
|
|
37
|
-
updatedAt:
|
|
38
|
-
contact:
|
|
39
|
-
deal:
|
|
40
|
-
company:
|
|
19
|
+
declare const TaskEntity: _lssm_lib_schema256.EntitySpec<{
|
|
20
|
+
id: _lssm_lib_schema256.EntityScalarField;
|
|
21
|
+
title: _lssm_lib_schema256.EntityScalarField;
|
|
22
|
+
description: _lssm_lib_schema256.EntityScalarField;
|
|
23
|
+
type: _lssm_lib_schema256.EntityEnumField;
|
|
24
|
+
priority: _lssm_lib_schema256.EntityEnumField;
|
|
25
|
+
status: _lssm_lib_schema256.EntityEnumField;
|
|
26
|
+
dueDate: _lssm_lib_schema256.EntityScalarField;
|
|
27
|
+
reminderAt: _lssm_lib_schema256.EntityScalarField;
|
|
28
|
+
contactId: _lssm_lib_schema256.EntityScalarField;
|
|
29
|
+
dealId: _lssm_lib_schema256.EntityScalarField;
|
|
30
|
+
companyId: _lssm_lib_schema256.EntityScalarField;
|
|
31
|
+
organizationId: _lssm_lib_schema256.EntityScalarField;
|
|
32
|
+
assignedTo: _lssm_lib_schema256.EntityScalarField;
|
|
33
|
+
createdBy: _lssm_lib_schema256.EntityScalarField;
|
|
34
|
+
completedAt: _lssm_lib_schema256.EntityScalarField;
|
|
35
|
+
completedBy: _lssm_lib_schema256.EntityScalarField;
|
|
36
|
+
createdAt: _lssm_lib_schema256.EntityScalarField;
|
|
37
|
+
updatedAt: _lssm_lib_schema256.EntityScalarField;
|
|
38
|
+
contact: _lssm_lib_schema256.EntityRelationField;
|
|
39
|
+
deal: _lssm_lib_schema256.EntityRelationField;
|
|
40
|
+
company: _lssm_lib_schema256.EntityRelationField;
|
|
41
41
|
}>;
|
|
42
42
|
/**
|
|
43
43
|
* Activity entity - interaction history.
|
|
44
44
|
*/
|
|
45
|
-
declare const ActivityEntity:
|
|
46
|
-
id:
|
|
47
|
-
type:
|
|
48
|
-
subject:
|
|
49
|
-
description:
|
|
50
|
-
contactId:
|
|
51
|
-
dealId:
|
|
52
|
-
companyId:
|
|
53
|
-
organizationId:
|
|
54
|
-
performedBy:
|
|
55
|
-
outcome:
|
|
56
|
-
occurredAt:
|
|
57
|
-
duration:
|
|
58
|
-
createdAt:
|
|
59
|
-
contact:
|
|
60
|
-
deal:
|
|
61
|
-
company:
|
|
45
|
+
declare const ActivityEntity: _lssm_lib_schema256.EntitySpec<{
|
|
46
|
+
id: _lssm_lib_schema256.EntityScalarField;
|
|
47
|
+
type: _lssm_lib_schema256.EntityEnumField;
|
|
48
|
+
subject: _lssm_lib_schema256.EntityScalarField;
|
|
49
|
+
description: _lssm_lib_schema256.EntityScalarField;
|
|
50
|
+
contactId: _lssm_lib_schema256.EntityScalarField;
|
|
51
|
+
dealId: _lssm_lib_schema256.EntityScalarField;
|
|
52
|
+
companyId: _lssm_lib_schema256.EntityScalarField;
|
|
53
|
+
organizationId: _lssm_lib_schema256.EntityScalarField;
|
|
54
|
+
performedBy: _lssm_lib_schema256.EntityScalarField;
|
|
55
|
+
outcome: _lssm_lib_schema256.EntityScalarField;
|
|
56
|
+
occurredAt: _lssm_lib_schema256.EntityScalarField;
|
|
57
|
+
duration: _lssm_lib_schema256.EntityScalarField;
|
|
58
|
+
createdAt: _lssm_lib_schema256.EntityScalarField;
|
|
59
|
+
contact: _lssm_lib_schema256.EntityRelationField;
|
|
60
|
+
deal: _lssm_lib_schema256.EntityRelationField;
|
|
61
|
+
company: _lssm_lib_schema256.EntityRelationField;
|
|
62
62
|
}>;
|
|
63
63
|
//#endregion
|
|
64
64
|
export { ActivityEntity, TaskEntity, TaskPriorityEnum, TaskStatusEnum, TaskTypeEnum };
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as _lssm_lib_schema250 from "@lssm/lib.schema";
|
|
2
2
|
import * as _lssm_lib_contracts4 from "@lssm/lib.contracts";
|
|
3
3
|
|
|
4
4
|
//#region src/events/contact.event.d.ts
|
|
5
|
-
declare const ContactCreatedEvent: _lssm_lib_contracts4.EventSpec<
|
|
5
|
+
declare const ContactCreatedEvent: _lssm_lib_contracts4.EventSpec<_lssm_lib_schema250.SchemaModel<{
|
|
6
6
|
contactId: {
|
|
7
|
-
type:
|
|
7
|
+
type: _lssm_lib_schema250.FieldType<string, string>;
|
|
8
8
|
isOptional: false;
|
|
9
9
|
};
|
|
10
10
|
email: {
|
|
11
|
-
type:
|
|
11
|
+
type: _lssm_lib_schema250.FieldType<string, string>;
|
|
12
12
|
isOptional: true;
|
|
13
13
|
};
|
|
14
14
|
organizationId: {
|
|
15
|
-
type:
|
|
15
|
+
type: _lssm_lib_schema250.FieldType<string, string>;
|
|
16
16
|
isOptional: false;
|
|
17
17
|
};
|
|
18
18
|
ownerId: {
|
|
19
|
-
type:
|
|
19
|
+
type: _lssm_lib_schema250.FieldType<string, string>;
|
|
20
20
|
isOptional: false;
|
|
21
21
|
};
|
|
22
22
|
createdAt: {
|
|
23
|
-
type:
|
|
23
|
+
type: _lssm_lib_schema250.FieldType<Date, string>;
|
|
24
24
|
isOptional: false;
|
|
25
25
|
};
|
|
26
26
|
}>>;
|
|
@@ -1,108 +1,108 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as _lssm_lib_schema298 from "@lssm/lib.schema";
|
|
2
2
|
import * as _lssm_lib_contracts5 from "@lssm/lib.contracts";
|
|
3
3
|
|
|
4
4
|
//#region src/events/deal.event.d.ts
|
|
5
|
-
declare const DealCreatedEvent: _lssm_lib_contracts5.EventSpec<
|
|
5
|
+
declare const DealCreatedEvent: _lssm_lib_contracts5.EventSpec<_lssm_lib_schema298.SchemaModel<{
|
|
6
6
|
dealId: {
|
|
7
|
-
type:
|
|
7
|
+
type: _lssm_lib_schema298.FieldType<string, string>;
|
|
8
8
|
isOptional: false;
|
|
9
9
|
};
|
|
10
10
|
name: {
|
|
11
|
-
type:
|
|
11
|
+
type: _lssm_lib_schema298.FieldType<string, string>;
|
|
12
12
|
isOptional: false;
|
|
13
13
|
};
|
|
14
14
|
value: {
|
|
15
|
-
type:
|
|
15
|
+
type: _lssm_lib_schema298.FieldType<number, number>;
|
|
16
16
|
isOptional: false;
|
|
17
17
|
};
|
|
18
18
|
pipelineId: {
|
|
19
|
-
type:
|
|
19
|
+
type: _lssm_lib_schema298.FieldType<string, string>;
|
|
20
20
|
isOptional: false;
|
|
21
21
|
};
|
|
22
22
|
stageId: {
|
|
23
|
-
type:
|
|
23
|
+
type: _lssm_lib_schema298.FieldType<string, string>;
|
|
24
24
|
isOptional: false;
|
|
25
25
|
};
|
|
26
26
|
ownerId: {
|
|
27
|
-
type:
|
|
27
|
+
type: _lssm_lib_schema298.FieldType<string, string>;
|
|
28
28
|
isOptional: false;
|
|
29
29
|
};
|
|
30
30
|
createdAt: {
|
|
31
|
-
type:
|
|
31
|
+
type: _lssm_lib_schema298.FieldType<Date, string>;
|
|
32
32
|
isOptional: false;
|
|
33
33
|
};
|
|
34
34
|
}>>;
|
|
35
|
-
declare const DealMovedEvent: _lssm_lib_contracts5.EventSpec<
|
|
35
|
+
declare const DealMovedEvent: _lssm_lib_contracts5.EventSpec<_lssm_lib_schema298.SchemaModel<{
|
|
36
36
|
dealId: {
|
|
37
|
-
type:
|
|
37
|
+
type: _lssm_lib_schema298.FieldType<string, string>;
|
|
38
38
|
isOptional: false;
|
|
39
39
|
};
|
|
40
40
|
fromStageId: {
|
|
41
|
-
type:
|
|
41
|
+
type: _lssm_lib_schema298.FieldType<string, string>;
|
|
42
42
|
isOptional: false;
|
|
43
43
|
};
|
|
44
44
|
toStageId: {
|
|
45
|
-
type:
|
|
45
|
+
type: _lssm_lib_schema298.FieldType<string, string>;
|
|
46
46
|
isOptional: false;
|
|
47
47
|
};
|
|
48
48
|
movedBy: {
|
|
49
|
-
type:
|
|
49
|
+
type: _lssm_lib_schema298.FieldType<string, string>;
|
|
50
50
|
isOptional: false;
|
|
51
51
|
};
|
|
52
52
|
movedAt: {
|
|
53
|
-
type:
|
|
53
|
+
type: _lssm_lib_schema298.FieldType<Date, string>;
|
|
54
54
|
isOptional: false;
|
|
55
55
|
};
|
|
56
56
|
}>>;
|
|
57
|
-
declare const DealWonEvent: _lssm_lib_contracts5.EventSpec<
|
|
57
|
+
declare const DealWonEvent: _lssm_lib_contracts5.EventSpec<_lssm_lib_schema298.SchemaModel<{
|
|
58
58
|
dealId: {
|
|
59
|
-
type:
|
|
59
|
+
type: _lssm_lib_schema298.FieldType<string, string>;
|
|
60
60
|
isOptional: false;
|
|
61
61
|
};
|
|
62
62
|
value: {
|
|
63
|
-
type:
|
|
63
|
+
type: _lssm_lib_schema298.FieldType<number, number>;
|
|
64
64
|
isOptional: false;
|
|
65
65
|
};
|
|
66
66
|
currency: {
|
|
67
|
-
type:
|
|
67
|
+
type: _lssm_lib_schema298.FieldType<string, string>;
|
|
68
68
|
isOptional: false;
|
|
69
69
|
};
|
|
70
70
|
contactId: {
|
|
71
|
-
type:
|
|
71
|
+
type: _lssm_lib_schema298.FieldType<string, string>;
|
|
72
72
|
isOptional: true;
|
|
73
73
|
};
|
|
74
74
|
companyId: {
|
|
75
|
-
type:
|
|
75
|
+
type: _lssm_lib_schema298.FieldType<string, string>;
|
|
76
76
|
isOptional: true;
|
|
77
77
|
};
|
|
78
78
|
ownerId: {
|
|
79
|
-
type:
|
|
79
|
+
type: _lssm_lib_schema298.FieldType<string, string>;
|
|
80
80
|
isOptional: false;
|
|
81
81
|
};
|
|
82
82
|
wonAt: {
|
|
83
|
-
type:
|
|
83
|
+
type: _lssm_lib_schema298.FieldType<Date, string>;
|
|
84
84
|
isOptional: false;
|
|
85
85
|
};
|
|
86
86
|
}>>;
|
|
87
|
-
declare const DealLostEvent: _lssm_lib_contracts5.EventSpec<
|
|
87
|
+
declare const DealLostEvent: _lssm_lib_contracts5.EventSpec<_lssm_lib_schema298.SchemaModel<{
|
|
88
88
|
dealId: {
|
|
89
|
-
type:
|
|
89
|
+
type: _lssm_lib_schema298.FieldType<string, string>;
|
|
90
90
|
isOptional: false;
|
|
91
91
|
};
|
|
92
92
|
value: {
|
|
93
|
-
type:
|
|
93
|
+
type: _lssm_lib_schema298.FieldType<number, number>;
|
|
94
94
|
isOptional: false;
|
|
95
95
|
};
|
|
96
96
|
reason: {
|
|
97
|
-
type:
|
|
97
|
+
type: _lssm_lib_schema298.FieldType<string, string>;
|
|
98
98
|
isOptional: false;
|
|
99
99
|
};
|
|
100
100
|
ownerId: {
|
|
101
|
-
type:
|
|
101
|
+
type: _lssm_lib_schema298.FieldType<string, string>;
|
|
102
102
|
isOptional: false;
|
|
103
103
|
};
|
|
104
104
|
lostAt: {
|
|
105
|
-
type:
|
|
105
|
+
type: _lssm_lib_schema298.FieldType<Date, string>;
|
|
106
106
|
isOptional: false;
|
|
107
107
|
};
|
|
108
108
|
}>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deal.handlers.d.ts","names":[],"sources":["../../src/handlers/deal.handlers.ts"],"sourcesContent":[],"mappings":";;;UAMiB,IAAA;;;EAAA,KAAA,EAAI,MAAA;EAWC,QAAA,EAAA,MAAA;EACT,UAAA,EAAA,MAAA;EACA,OAAA,EAAA,MAAA;EAAI,MAAA,EAAA,MAAA,GAAA,KAAA,GAAA,MAAA,GAAA,OAAA;EAGA,SAAA,CAAA,EAAA,MAAe;EAWf,SAAA,CAAA,EAAA,MAAa;EAMb,OAAA,EAAA,MAAY;EAMZ,iBAAa,CAAA,EA5BR,IA4BQ;EAMb,SAAA,EAjCJ,IAiCI;EAUA,SAAA,EA1CJ,IA0CI;AASjB;AACS,UAjDQ,eAAA,CAiDR;EACE,IAAA,EAAA,MAAA;EAAR,KAAA,EAAA,MAAA;EAAO,QAAA,CAAA,EAAA,MAAA;EAmDY,UAAA,EAAA,MAAA;EACb,OAAA,EAAA,MAAA;EAEE,SAAA,CAAA,EAAA,MAAA;EAAR,SAAA,CAAA,EAAA,MAAA;EAAO,iBAAA,CAAA,EAhGY,IAgGZ;AA2BV;AAAiD,UAxHhC,aAAA,CAwHgC;EAAwB,MAAA,EAAA,MAAA;EAAR,OAAA,EAAA,MAAA;EAAO,QAAA,CAAA,EAAA,MAAA;
|
|
1
|
+
{"version":3,"file":"deal.handlers.d.ts","names":[],"sources":["../../src/handlers/deal.handlers.ts"],"sourcesContent":[],"mappings":";;;UAMiB,IAAA;;;EAAA,KAAA,EAAI,MAAA;EAWC,QAAA,EAAA,MAAA;EACT,UAAA,EAAA,MAAA;EACA,OAAA,EAAA,MAAA;EAAI,MAAA,EAAA,MAAA,GAAA,KAAA,GAAA,MAAA,GAAA,OAAA;EAGA,SAAA,CAAA,EAAA,MAAe;EAWf,SAAA,CAAA,EAAA,MAAa;EAMb,OAAA,EAAA,MAAY;EAMZ,iBAAa,CAAA,EA5BR,IA4BQ;EAMb,SAAA,EAjCJ,IAiCI;EAUA,SAAA,EA1CJ,IA0CI;AASjB;AACS,UAjDQ,eAAA,CAiDR;EACE,IAAA,EAAA,MAAA;EAAR,KAAA,EAAA,MAAA;EAAO,QAAA,CAAA,EAAA,MAAA;EAmDY,UAAA,EAAA,MAAA;EACb,OAAA,EAAA,MAAA;EAEE,SAAA,CAAA,EAAA,MAAA;EAAR,SAAA,CAAA,EAAA,MAAA;EAAO,iBAAA,CAAA,EAhGY,IAgGZ;AA2BV;AAAiD,UAxHhC,aAAA,CAwHgC;EAAwB,MAAA,EAAA,MAAA;EAAR,OAAA,EAAA,MAAA;EAAO,QAAA,CAAA,EAAA,MAAA;AA6BxE;AAAgD,UA/I/B,YAAA,CA+I+B;EAAuB,MAAA,EAAA,MAAA;EAAR,SAAA,CAAA,EAAA,MAAA;EAAO,KAAA,CAAA,EAAA,MAAA;AAwBtE;AAAiD,UAjKhC,aAAA,CAiKgC;EAAwB,MAAA,EAAA,MAAA;EAAR,UAAA,EAAA,MAAA;EAAO,KAAA,CAAA,EAAA,MAAA;AAwBxE;AAE2B,UArLV,cAAA,CAqLU;EAAf,UAAA,CAAA,EAAA,MAAA;EAAR,OAAA,CAAA,EAAA,MAAA;EAAO,MAAA,CAAA,EAAA,MAAA,GAAA,KAAA,GAAA,MAAA,GAAA,KAAA;EAgBW,OAAA,CAAA,EAAA,MAAA;;;;;UA3LL,eAAA;SACR;;;;;;;iBAQa,oBAAA,QACb,iBACN,QAAQ;;;;iBAmDW,qBAAA,QACb;;IAEN,QAAQ;;;;iBA2BW,mBAAA,QAA2B,gBAAgB,QAAQ;;;;iBA6BnD,kBAAA,QAA0B,eAAe,QAAQ;;;;iBAwBjD,mBAAA,QAA2B,gBAAgB,QAAQ;;;;iBAwBnD,0BAAA;;IAElB,QAAQ,eAAe;;;;iBAgBL,4BAAA;;IAErB,QAFiD,SAAA"}
|
|
@@ -57,6 +57,7 @@ async function mockMoveDealHandler(input) {
|
|
|
57
57
|
const dealIndex = MOCK_DEALS.findIndex((d) => d.id === input.dealId);
|
|
58
58
|
if (dealIndex === -1) throw new Error("NOT_FOUND");
|
|
59
59
|
const deal = MOCK_DEALS[dealIndex];
|
|
60
|
+
if (!deal) throw new Error("NOT_FOUND");
|
|
60
61
|
if (!MOCK_STAGES.find((s) => s.id === input.stageId)) throw new Error("INVALID_STAGE");
|
|
61
62
|
const updatedDeal = {
|
|
62
63
|
...deal,
|
|
@@ -88,8 +89,10 @@ async function mockWinDealHandler(input) {
|
|
|
88
89
|
async function mockLoseDealHandler(input) {
|
|
89
90
|
const dealIndex = MOCK_DEALS.findIndex((d) => d.id === input.dealId);
|
|
90
91
|
if (dealIndex === -1) throw new Error("NOT_FOUND");
|
|
92
|
+
const deal = MOCK_DEALS[dealIndex];
|
|
93
|
+
if (!deal) throw new Error("NOT_FOUND");
|
|
91
94
|
const updatedDeal = {
|
|
92
|
-
...
|
|
95
|
+
...deal,
|
|
93
96
|
status: "LOST",
|
|
94
97
|
updatedAt: /* @__PURE__ */ new Date()
|
|
95
98
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deal.handlers.js","names":["deal: Deal","updatedDeal: Deal","grouped: Record<string, Deal[]>"],"sources":["../../src/handlers/deal.handlers.ts"],"sourcesContent":["/**\n * Mock handlers for Deal contracts\n */\nimport { MOCK_DEALS, MOCK_STAGES } from './mock-data';\n\n// Types inferred from contract schemas\nexport interface Deal {\n id: string;\n name: string;\n value: number;\n currency: string;\n pipelineId: string;\n stageId: string;\n status: 'OPEN' | 'WON' | 'LOST' | 'STALE';\n contactId?: string;\n companyId?: string;\n ownerId: string;\n expectedCloseDate?: Date;\n createdAt: Date;\n updatedAt: Date;\n}\n\nexport interface CreateDealInput {\n name: string;\n value: number;\n currency?: string;\n pipelineId: string;\n stageId: string;\n contactId?: string;\n companyId?: string;\n expectedCloseDate?: Date;\n}\n\nexport interface MoveDealInput {\n dealId: string;\n stageId: string;\n position?: number;\n}\n\nexport interface WinDealInput {\n dealId: string;\n wonSource?: string;\n notes?: string;\n}\n\nexport interface LoseDealInput {\n dealId: string;\n lostReason: string;\n notes?: string;\n}\n\nexport interface ListDealsInput {\n pipelineId?: string;\n stageId?: string;\n status?: 'OPEN' | 'WON' | 'LOST' | 'all';\n ownerId?: string;\n search?: string;\n limit?: number;\n offset?: number;\n}\n\nexport interface ListDealsOutput {\n deals: Deal[];\n total: number;\n totalValue: number;\n}\n\n/**\n * Mock handler for ListDealsContract\n */\nexport async function mockListDealsHandler(\n input: ListDealsInput\n): Promise<ListDealsOutput> {\n const {\n pipelineId,\n stageId,\n status,\n ownerId,\n search,\n limit = 20,\n offset = 0,\n } = input;\n\n let filtered = [...MOCK_DEALS];\n\n if (pipelineId) {\n filtered = filtered.filter((d) => d.pipelineId === pipelineId);\n }\n\n if (stageId) {\n filtered = filtered.filter((d) => d.stageId === stageId);\n }\n\n if (status && status !== 'all') {\n filtered = filtered.filter((d) => d.status === status);\n }\n\n if (ownerId) {\n filtered = filtered.filter((d) => d.ownerId === ownerId);\n }\n\n if (search) {\n const q = search.toLowerCase();\n filtered = filtered.filter((d) => d.name.toLowerCase().includes(q));\n }\n\n // Sort by value descending\n filtered.sort((a, b) => b.value - a.value);\n\n const total = filtered.length;\n const totalValue = filtered.reduce((sum, d) => sum + d.value, 0);\n const deals = filtered.slice(offset, offset + limit);\n\n return {\n deals,\n total,\n totalValue,\n };\n}\n\n/**\n * Mock handler for CreateDealContract\n */\nexport async function mockCreateDealHandler(\n input: CreateDealInput,\n context: { ownerId: string }\n): Promise<Deal> {\n const now = new Date();\n\n const deal: Deal = {\n id: `deal-${Date.now()}`,\n name: input.name,\n value: input.value,\n currency: input.currency ?? 'USD',\n pipelineId: input.pipelineId,\n stageId: input.stageId,\n status: 'OPEN',\n contactId: input.contactId,\n companyId: input.companyId,\n ownerId: context.ownerId,\n expectedCloseDate: input.expectedCloseDate,\n createdAt: now,\n updatedAt: now,\n };\n\n MOCK_DEALS.push(deal);\n\n return deal;\n}\n\n/**\n * Mock handler for MoveDealContract\n */\nexport async function mockMoveDealHandler(input: MoveDealInput): Promise<Deal> {\n const dealIndex = MOCK_DEALS.findIndex((d) => d.id === input.dealId);\n if (dealIndex === -1) {\n throw new Error('NOT_FOUND');\n }\n const deal = MOCK_DEALS[dealIndex]
|
|
1
|
+
{"version":3,"file":"deal.handlers.js","names":["deal: Deal","updatedDeal: Deal","grouped: Record<string, Deal[]>"],"sources":["../../src/handlers/deal.handlers.ts"],"sourcesContent":["/**\n * Mock handlers for Deal contracts\n */\nimport { MOCK_DEALS, MOCK_STAGES } from './mock-data';\n\n// Types inferred from contract schemas\nexport interface Deal {\n id: string;\n name: string;\n value: number;\n currency: string;\n pipelineId: string;\n stageId: string;\n status: 'OPEN' | 'WON' | 'LOST' | 'STALE';\n contactId?: string;\n companyId?: string;\n ownerId: string;\n expectedCloseDate?: Date;\n createdAt: Date;\n updatedAt: Date;\n}\n\nexport interface CreateDealInput {\n name: string;\n value: number;\n currency?: string;\n pipelineId: string;\n stageId: string;\n contactId?: string;\n companyId?: string;\n expectedCloseDate?: Date;\n}\n\nexport interface MoveDealInput {\n dealId: string;\n stageId: string;\n position?: number;\n}\n\nexport interface WinDealInput {\n dealId: string;\n wonSource?: string;\n notes?: string;\n}\n\nexport interface LoseDealInput {\n dealId: string;\n lostReason: string;\n notes?: string;\n}\n\nexport interface ListDealsInput {\n pipelineId?: string;\n stageId?: string;\n status?: 'OPEN' | 'WON' | 'LOST' | 'all';\n ownerId?: string;\n search?: string;\n limit?: number;\n offset?: number;\n}\n\nexport interface ListDealsOutput {\n deals: Deal[];\n total: number;\n totalValue: number;\n}\n\n/**\n * Mock handler for ListDealsContract\n */\nexport async function mockListDealsHandler(\n input: ListDealsInput\n): Promise<ListDealsOutput> {\n const {\n pipelineId,\n stageId,\n status,\n ownerId,\n search,\n limit = 20,\n offset = 0,\n } = input;\n\n let filtered = [...MOCK_DEALS];\n\n if (pipelineId) {\n filtered = filtered.filter((d) => d.pipelineId === pipelineId);\n }\n\n if (stageId) {\n filtered = filtered.filter((d) => d.stageId === stageId);\n }\n\n if (status && status !== 'all') {\n filtered = filtered.filter((d) => d.status === status);\n }\n\n if (ownerId) {\n filtered = filtered.filter((d) => d.ownerId === ownerId);\n }\n\n if (search) {\n const q = search.toLowerCase();\n filtered = filtered.filter((d) => d.name.toLowerCase().includes(q));\n }\n\n // Sort by value descending\n filtered.sort((a, b) => b.value - a.value);\n\n const total = filtered.length;\n const totalValue = filtered.reduce((sum, d) => sum + d.value, 0);\n const deals = filtered.slice(offset, offset + limit);\n\n return {\n deals,\n total,\n totalValue,\n };\n}\n\n/**\n * Mock handler for CreateDealContract\n */\nexport async function mockCreateDealHandler(\n input: CreateDealInput,\n context: { ownerId: string }\n): Promise<Deal> {\n const now = new Date();\n\n const deal: Deal = {\n id: `deal-${Date.now()}`,\n name: input.name,\n value: input.value,\n currency: input.currency ?? 'USD',\n pipelineId: input.pipelineId,\n stageId: input.stageId,\n status: 'OPEN',\n contactId: input.contactId,\n companyId: input.companyId,\n ownerId: context.ownerId,\n expectedCloseDate: input.expectedCloseDate,\n createdAt: now,\n updatedAt: now,\n };\n\n MOCK_DEALS.push(deal);\n\n return deal;\n}\n\n/**\n * Mock handler for MoveDealContract\n */\nexport async function mockMoveDealHandler(input: MoveDealInput): Promise<Deal> {\n const dealIndex = MOCK_DEALS.findIndex((d) => d.id === input.dealId);\n if (dealIndex === -1) {\n throw new Error('NOT_FOUND');\n }\n const deal = MOCK_DEALS[dealIndex];\n if (!deal) {\n throw new Error('NOT_FOUND');\n }\n\n const stage = MOCK_STAGES.find((s) => s.id === input.stageId);\n if (!stage) {\n throw new Error('INVALID_STAGE');\n }\n\n const updatedDeal: Deal = {\n ...deal,\n stageId: input.stageId,\n updatedAt: new Date(),\n };\n\n MOCK_DEALS[dealIndex] = updatedDeal;\n\n return updatedDeal;\n}\n\n/**\n * Mock handler for WinDealContract\n */\nexport async function mockWinDealHandler(input: WinDealInput): Promise<Deal> {\n const dealIndex = MOCK_DEALS.findIndex((d) => d.id === input.dealId);\n if (dealIndex === -1) {\n throw new Error('NOT_FOUND');\n }\n const deal = MOCK_DEALS[dealIndex];\n if (!deal) {\n throw new Error('NOT_FOUND');\n }\n\n const updatedDeal: Deal = {\n ...deal,\n status: 'WON' as const,\n updatedAt: new Date(),\n };\n\n MOCK_DEALS[dealIndex] = updatedDeal;\n\n return updatedDeal;\n}\n\n/**\n * Mock handler for LoseDealContract\n */\nexport async function mockLoseDealHandler(input: LoseDealInput): Promise<Deal> {\n const dealIndex = MOCK_DEALS.findIndex((d) => d.id === input.dealId);\n if (dealIndex === -1) {\n throw new Error('NOT_FOUND');\n }\n const deal = MOCK_DEALS[dealIndex];\n if (!deal) {\n throw new Error('NOT_FOUND');\n }\n\n const updatedDeal: Deal = {\n ...deal,\n status: 'LOST' as const,\n updatedAt: new Date(),\n };\n\n MOCK_DEALS[dealIndex] = updatedDeal;\n\n return updatedDeal;\n}\n\n/**\n * Get deals grouped by stage for Kanban view\n */\nexport async function mockGetDealsByStageHandler(input: {\n pipelineId: string;\n}): Promise<Record<string, Deal[]>> {\n const deals = MOCK_DEALS.filter(\n (d) => d.pipelineId === input.pipelineId && d.status === 'OPEN'\n );\n\n const grouped: Record<string, Deal[]> = {};\n for (const stage of MOCK_STAGES) {\n grouped[stage.id] = deals.filter((d) => d.stageId === stage.id);\n }\n\n return grouped;\n}\n\n/**\n * Get pipeline stages\n */\nexport async function mockGetPipelineStagesHandler(input: {\n pipelineId: string;\n}) {\n return MOCK_STAGES.filter((s) => s.pipelineId === input.pipelineId);\n}\n"],"mappings":";;;;;;;;;AAsEA,eAAsB,qBACpB,OAC0B;CAC1B,MAAM,EACJ,YACA,SACA,QACA,SACA,QACA,QAAQ,IACR,SAAS,MACP;CAEJ,IAAI,WAAW,CAAC,GAAG,WAAW;AAE9B,KAAI,WACF,YAAW,SAAS,QAAQ,MAAM,EAAE,eAAe,WAAW;AAGhE,KAAI,QACF,YAAW,SAAS,QAAQ,MAAM,EAAE,YAAY,QAAQ;AAG1D,KAAI,UAAU,WAAW,MACvB,YAAW,SAAS,QAAQ,MAAM,EAAE,WAAW,OAAO;AAGxD,KAAI,QACF,YAAW,SAAS,QAAQ,MAAM,EAAE,YAAY,QAAQ;AAG1D,KAAI,QAAQ;EACV,MAAM,IAAI,OAAO,aAAa;AAC9B,aAAW,SAAS,QAAQ,MAAM,EAAE,KAAK,aAAa,CAAC,SAAS,EAAE,CAAC;;AAIrE,UAAS,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM;CAE1C,MAAM,QAAQ,SAAS;CACvB,MAAM,aAAa,SAAS,QAAQ,KAAK,MAAM,MAAM,EAAE,OAAO,EAAE;AAGhE,QAAO;EACL,OAHY,SAAS,MAAM,QAAQ,SAAS,MAAM;EAIlD;EACA;EACD;;;;;AAMH,eAAsB,sBACpB,OACA,SACe;CACf,MAAM,sBAAM,IAAI,MAAM;CAEtB,MAAMA,OAAa;EACjB,IAAI,QAAQ,KAAK,KAAK;EACtB,MAAM,MAAM;EACZ,OAAO,MAAM;EACb,UAAU,MAAM,YAAY;EAC5B,YAAY,MAAM;EAClB,SAAS,MAAM;EACf,QAAQ;EACR,WAAW,MAAM;EACjB,WAAW,MAAM;EACjB,SAAS,QAAQ;EACjB,mBAAmB,MAAM;EACzB,WAAW;EACX,WAAW;EACZ;AAED,YAAW,KAAK,KAAK;AAErB,QAAO;;;;;AAMT,eAAsB,oBAAoB,OAAqC;CAC7E,MAAM,YAAY,WAAW,WAAW,MAAM,EAAE,OAAO,MAAM,OAAO;AACpE,KAAI,cAAc,GAChB,OAAM,IAAI,MAAM,YAAY;CAE9B,MAAM,OAAO,WAAW;AACxB,KAAI,CAAC,KACH,OAAM,IAAI,MAAM,YAAY;AAI9B,KAAI,CADU,YAAY,MAAM,MAAM,EAAE,OAAO,MAAM,QAAQ,CAE3D,OAAM,IAAI,MAAM,gBAAgB;CAGlC,MAAMC,cAAoB;EACxB,GAAG;EACH,SAAS,MAAM;EACf,2BAAW,IAAI,MAAM;EACtB;AAED,YAAW,aAAa;AAExB,QAAO;;;;;AAMT,eAAsB,mBAAmB,OAAoC;CAC3E,MAAM,YAAY,WAAW,WAAW,MAAM,EAAE,OAAO,MAAM,OAAO;AACpE,KAAI,cAAc,GAChB,OAAM,IAAI,MAAM,YAAY;CAE9B,MAAM,OAAO,WAAW;AACxB,KAAI,CAAC,KACH,OAAM,IAAI,MAAM,YAAY;CAG9B,MAAMA,cAAoB;EACxB,GAAG;EACH,QAAQ;EACR,2BAAW,IAAI,MAAM;EACtB;AAED,YAAW,aAAa;AAExB,QAAO;;;;;AAMT,eAAsB,oBAAoB,OAAqC;CAC7E,MAAM,YAAY,WAAW,WAAW,MAAM,EAAE,OAAO,MAAM,OAAO;AACpE,KAAI,cAAc,GAChB,OAAM,IAAI,MAAM,YAAY;CAE9B,MAAM,OAAO,WAAW;AACxB,KAAI,CAAC,KACH,OAAM,IAAI,MAAM,YAAY;CAG9B,MAAMA,cAAoB;EACxB,GAAG;EACH,QAAQ;EACR,2BAAW,IAAI,MAAM;EACtB;AAED,YAAW,aAAa;AAExB,QAAO;;;;;AAMT,eAAsB,2BAA2B,OAEb;CAClC,MAAM,QAAQ,WAAW,QACtB,MAAM,EAAE,eAAe,MAAM,cAAc,EAAE,WAAW,OAC1D;CAED,MAAMC,UAAkC,EAAE;AAC1C,MAAK,MAAM,SAAS,YAClB,SAAQ,MAAM,MAAM,MAAM,QAAQ,MAAM,EAAE,YAAY,MAAM,GAAG;AAGjE,QAAO;;;;;AAMT,eAAsB,6BAA6B,OAEhD;AACD,QAAO,YAAY,QAAQ,MAAM,EAAE,eAAe,MAAM,WAAW"}
|
package/dist/index.d.ts
CHANGED
|
@@ -15,14 +15,14 @@ import { MOCK_COMPANIES, MOCK_CONTACTS, MOCK_DEALS, MOCK_STAGES, MockDeal, MockS
|
|
|
15
15
|
import { CreateDealInput, Deal, ListDealsInput, ListDealsOutput, LoseDealInput, MoveDealInput, WinDealInput, mockCreateDealHandler, mockGetDealsByStageHandler, mockGetPipelineStagesHandler, mockListDealsHandler, mockLoseDealHandler, mockMoveDealHandler, mockWinDealHandler } from "./handlers/deal.handlers.js";
|
|
16
16
|
import { CrmDashboardPresentation, PipelineMetricsPresentation } from "./presentations/dashboard.presentation.js";
|
|
17
17
|
import { DealCardPresentation, DealDetailPresentation, DealListPresentation, PipelineKanbanPresentation } from "./presentations/pipeline.presentation.js";
|
|
18
|
-
import * as
|
|
18
|
+
import * as _lssm_lib_schema51 from "@lssm/lib.schema";
|
|
19
19
|
|
|
20
20
|
//#region src/index.d.ts
|
|
21
21
|
/**
|
|
22
22
|
* Complete schema composition for CRM Pipeline.
|
|
23
23
|
*/
|
|
24
24
|
declare const schemaComposition: {
|
|
25
|
-
modules:
|
|
25
|
+
modules: _lssm_lib_schema51.ModuleSchemaContribution[];
|
|
26
26
|
provider: "postgresql";
|
|
27
27
|
outputPath: string;
|
|
28
28
|
};
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/index.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;cAqBa;WASZ,
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/index.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;cAqBa;WASZ,kBAAA,CAAA,wBAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openbanking.js","names":[],"sources":["../../../../../../../libs/contracts/dist/capabilities/openbanking.js"],"sourcesContent":["import { StabilityEnum } from \"../ownership.js\";\n\n//#region src/capabilities/openbanking.ts\nconst OWNERS = [\"platform.finance\"];\nconst TAGS = [\"open-banking\", \"finance\"];\nconst openBankingAccountsReadCapability = {\n\tmeta: {\n\t\tkey: \"openbanking.accounts.read\",\n\t\tversion: 1,\n\t\tkind: \"integration\",\n\t\ttitle: \"Open Banking Accounts (Read)\",\n\t\tdescription: \"Provides read-only access to linked bank accounts, including account summaries and metadata.\",\n\t\tdomain: \"finance\",\n\t\towners: [...OWNERS],\n\t\ttags: [...TAGS],\n\t\tstability: StabilityEnum.Experimental\n\t},\n\tprovides: [\n\t\t{\n\t\t\tsurface: \"operation\",\n\t\t\tname: \"openbanking.accounts.list\",\n\t\t\tversion: 1,\n\t\t\tdescription: \"List bank accounts linked to a Powens open banking connection.\"\n\t\t},\n\t\t{\n\t\t\tsurface: \"operation\",\n\t\t\tname: \"openbanking.accounts.get\",\n\t\t\tversion: 1,\n\t\t\tdescription: \"Retrieve the canonical bank account record for a specific account.\"\n\t\t},\n\t\t{\n\t\t\tsurface: \"operation\",\n\t\t\tname: \"openbanking.accounts.sync\",\n\t\t\tversion: 1,\n\t\t\tdescription: \"Trigger a refresh of bank account metadata from the open banking provider.\"\n\t\t}\n\t]\n};\nconst openBankingTransactionsReadCapability = {\n\tmeta: {\n\t\tkey: \"openbanking.transactions.read\",\n\t\tversion: 1,\n\t\tkind: \"integration\",\n\t\ttitle: \"Open Banking Transactions (Read)\",\n\t\tdescription: \"Enables retrieval of transaction history for linked bank accounts via open banking providers.\",\n\t\tdomain: \"finance\",\n\t\towners: [...OWNERS],\n\t\ttags: [...TAGS, \"transactions\"],\n\t\tstability: StabilityEnum.Experimental\n\t},\n\tprovides: [{\n\t\tsurface: \"operation\",\n\t\tname: \"openbanking.transactions.list\",\n\t\tversion: 1,\n\t\tdescription: \"List transactions for a given bank account with optional date filtering.\"\n\t}, {\n\t\tsurface: \"operation\",\n\t\tname: \"openbanking.transactions.sync\",\n\t\tversion: 1,\n\t\tdescription: \"Synchronise transactions from the open banking provider into the canonical ledger.\"\n\t}]\n};\nconst openBankingBalancesReadCapability = {\n\tmeta: {\n\t\tkey: \"openbanking.balances.read\",\n\t\tversion: 1,\n\t\tkind: \"integration\",\n\t\ttitle: \"Open Banking Balances (Read)\",\n\t\tdescription: \"Allows querying of current and available balances for linked bank accounts via open banking providers.\",\n\t\tdomain: \"finance\",\n\t\towners: [...OWNERS],\n\t\ttags: [...TAGS, \"balances\"],\n\t\tstability: StabilityEnum.Experimental\n\t},\n\tprovides: [{\n\t\tsurface: \"operation\",\n\t\tname: \"openbanking.balances.get\",\n\t\tversion: 1,\n\t\tdescription: \"Retrieve the latest known balances for a specified bank account.\"\n\t}, {\n\t\tsurface: \"operation\",\n\t\tname: \"openbanking.balances.refresh\",\n\t\tversion: 1,\n\t\tdescription: \"Force a balance refresh from the open banking provider.\"\n\t}]\n};\nfunction registerOpenBankingCapabilities(registry) {\n\treturn registry.register(openBankingAccountsReadCapability).register(openBankingTransactionsReadCapability).register(openBankingBalancesReadCapability);\n}\n\n//#endregion\nexport { openBankingAccountsReadCapability, openBankingBalancesReadCapability, openBankingTransactionsReadCapability, registerOpenBankingCapabilities }
|
|
1
|
+
{"version":3,"file":"openbanking.js","names":[],"sources":["../../../../../../../libs/contracts/dist/capabilities/openbanking.js"],"sourcesContent":["import { StabilityEnum } from \"../ownership.js\";\n\n//#region src/capabilities/openbanking.ts\nconst OWNERS = [\"platform.finance\"];\nconst TAGS = [\"open-banking\", \"finance\"];\nconst openBankingAccountsReadCapability = {\n\tmeta: {\n\t\tkey: \"openbanking.accounts.read\",\n\t\tversion: 1,\n\t\tkind: \"integration\",\n\t\ttitle: \"Open Banking Accounts (Read)\",\n\t\tdescription: \"Provides read-only access to linked bank accounts, including account summaries and metadata.\",\n\t\tdomain: \"finance\",\n\t\towners: [...OWNERS],\n\t\ttags: [...TAGS],\n\t\tstability: StabilityEnum.Experimental\n\t},\n\tprovides: [\n\t\t{\n\t\t\tsurface: \"operation\",\n\t\t\tname: \"openbanking.accounts.list\",\n\t\t\tversion: 1,\n\t\t\tdescription: \"List bank accounts linked to a Powens open banking connection.\"\n\t\t},\n\t\t{\n\t\t\tsurface: \"operation\",\n\t\t\tname: \"openbanking.accounts.get\",\n\t\t\tversion: 1,\n\t\t\tdescription: \"Retrieve the canonical bank account record for a specific account.\"\n\t\t},\n\t\t{\n\t\t\tsurface: \"operation\",\n\t\t\tname: \"openbanking.accounts.sync\",\n\t\t\tversion: 1,\n\t\t\tdescription: \"Trigger a refresh of bank account metadata from the open banking provider.\"\n\t\t}\n\t]\n};\nconst openBankingTransactionsReadCapability = {\n\tmeta: {\n\t\tkey: \"openbanking.transactions.read\",\n\t\tversion: 1,\n\t\tkind: \"integration\",\n\t\ttitle: \"Open Banking Transactions (Read)\",\n\t\tdescription: \"Enables retrieval of transaction history for linked bank accounts via open banking providers.\",\n\t\tdomain: \"finance\",\n\t\towners: [...OWNERS],\n\t\ttags: [...TAGS, \"transactions\"],\n\t\tstability: StabilityEnum.Experimental\n\t},\n\tprovides: [{\n\t\tsurface: \"operation\",\n\t\tname: \"openbanking.transactions.list\",\n\t\tversion: 1,\n\t\tdescription: \"List transactions for a given bank account with optional date filtering.\"\n\t}, {\n\t\tsurface: \"operation\",\n\t\tname: \"openbanking.transactions.sync\",\n\t\tversion: 1,\n\t\tdescription: \"Synchronise transactions from the open banking provider into the canonical ledger.\"\n\t}]\n};\nconst openBankingBalancesReadCapability = {\n\tmeta: {\n\t\tkey: \"openbanking.balances.read\",\n\t\tversion: 1,\n\t\tkind: \"integration\",\n\t\ttitle: \"Open Banking Balances (Read)\",\n\t\tdescription: \"Allows querying of current and available balances for linked bank accounts via open banking providers.\",\n\t\tdomain: \"finance\",\n\t\towners: [...OWNERS],\n\t\ttags: [...TAGS, \"balances\"],\n\t\tstability: StabilityEnum.Experimental\n\t},\n\tprovides: [{\n\t\tsurface: \"operation\",\n\t\tname: \"openbanking.balances.get\",\n\t\tversion: 1,\n\t\tdescription: \"Retrieve the latest known balances for a specified bank account.\"\n\t}, {\n\t\tsurface: \"operation\",\n\t\tname: \"openbanking.balances.refresh\",\n\t\tversion: 1,\n\t\tdescription: \"Force a balance refresh from the open banking provider.\"\n\t}]\n};\nfunction registerOpenBankingCapabilities(registry) {\n\treturn registry.register(openBankingAccountsReadCapability).register(openBankingTransactionsReadCapability).register(openBankingBalancesReadCapability);\n}\n\n//#endregion\nexport { openBankingAccountsReadCapability, openBankingBalancesReadCapability, openBankingTransactionsReadCapability, registerOpenBankingCapabilities };"],"mappings":";;;AAGA,MAAM,SAAS,CAAC,mBAAmB;AACnC,MAAM,OAAO,CAAC,gBAAgB,UAAU;AACxC,MAAM,oCAAoC;CACzC,MAAM;EACL,KAAK;EACL,SAAS;EACT,MAAM;EACN,OAAO;EACP,aAAa;EACb,QAAQ;EACR,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM,CAAC,GAAG,KAAK;EACf,WAAW,cAAc;EACzB;CACD,UAAU;EACT;GACC,SAAS;GACT,MAAM;GACN,SAAS;GACT,aAAa;GACb;EACD;GACC,SAAS;GACT,MAAM;GACN,SAAS;GACT,aAAa;GACb;EACD;GACC,SAAS;GACT,MAAM;GACN,SAAS;GACT,aAAa;GACb;EACD;CACD;AACD,MAAM,wCAAwC;CAC7C,MAAM;EACL,KAAK;EACL,SAAS;EACT,MAAM;EACN,OAAO;EACP,aAAa;EACb,QAAQ;EACR,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM,CAAC,GAAG,MAAM,eAAe;EAC/B,WAAW,cAAc;EACzB;CACD,UAAU,CAAC;EACV,SAAS;EACT,MAAM;EACN,SAAS;EACT,aAAa;EACb,EAAE;EACF,SAAS;EACT,MAAM;EACN,SAAS;EACT,aAAa;EACb,CAAC;CACF;AACD,MAAM,oCAAoC;CACzC,MAAM;EACL,KAAK;EACL,SAAS;EACT,MAAM;EACN,OAAO;EACP,aAAa;EACb,QAAQ;EACR,QAAQ,CAAC,GAAG,OAAO;EACnB,MAAM,CAAC,GAAG,MAAM,WAAW;EAC3B,WAAW,cAAc;EACzB;CACD,UAAU,CAAC;EACV,SAAS;EACT,MAAM;EACN,SAAS;EACT,aAAa;EACb,EAAE;EACF,SAAS;EACT,MAAM;EACN,SAAS;EACT,aAAa;EACb,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","names":[],"sources":["../../../../../../../libs/contracts/dist/contract-registry/schemas.js"],"sourcesContent":["import { StabilityEnum } from \"../ownership.js\";\nimport z from \"zod\";\n\n//#region src/contract-registry/schemas.ts\nconst ContractRegistryItemTypeValues = [\n\t\"contractspec:operation\",\n\t\"contractspec:event\",\n\t\"contractspec:presentation\",\n\t\"contractspec:form\",\n\t\"contractspec:feature\",\n\t\"contractspec:workflow\",\n\t\"contractspec:template\",\n\t\"contractspec:integration\",\n\t\"contractspec:data-view\",\n\t\"contractspec:migration\",\n\t\"contractspec:telemetry\",\n\t\"contractspec:experiment\",\n\t\"contractspec:app-config\",\n\t\"contractspec:knowledge\"\n];\nconst ContractRegistryItemTypeSchema = z.enum(ContractRegistryItemTypeValues);\nconst ContractRegistryFileSchema = z.object({\n\tpath: z.string().min(1),\n\ttype: z.string().min(1),\n\tcontent: z.string().optional()\n});\nconst ContractRegistryItemSchema = z.object({\n\tname: z.string().min(1),\n\ttype: ContractRegistryItemTypeSchema,\n\tversion: z.number().int().nonnegative(),\n\ttitle: z.string().min(1),\n\tdescription: z.string().min(1),\n\tmeta: z.object({\n\t\tstability: z.enum([\n\t\t\tStabilityEnum.Idea,\n\t\t\tStabilityEnum.InCreation,\n\t\t\tStabilityEnum.Experimental,\n\t\t\tStabilityEnum.Beta,\n\t\t\tStabilityEnum.Stable,\n\t\t\tStabilityEnum.Deprecated\n\t\t]),\n\t\towners: z.array(z.string().min(1)).default([]),\n\t\ttags: z.array(z.string().min(1)).default([])\n\t}),\n\tdependencies: z.array(z.string().min(1)).optional(),\n\tregistryDependencies: z.array(z.string().min(1)).optional(),\n\tfiles: z.array(ContractRegistryFileSchema).min(1),\n\tschema: z.object({\n\t\tinput: z.unknown().optional(),\n\t\toutput: z.unknown().optional()\n\t}).optional()\n});\nconst ContractRegistryManifestSchema = z.object({\n\t$schema: z.string().min(1).optional(),\n\tname: z.string().min(1),\n\thomepage: z.string().min(1).optional(),\n\titems: z.array(ContractRegistryItemSchema)\n});\n\n//#endregion\nexport { ContractRegistryFileSchema, ContractRegistryItemSchema, ContractRegistryItemTypeSchema, ContractRegistryManifestSchema }
|
|
1
|
+
{"version":3,"file":"schemas.js","names":[],"sources":["../../../../../../../libs/contracts/dist/contract-registry/schemas.js"],"sourcesContent":["import { StabilityEnum } from \"../ownership.js\";\nimport z from \"zod\";\n\n//#region src/contract-registry/schemas.ts\nconst ContractRegistryItemTypeValues = [\n\t\"contractspec:operation\",\n\t\"contractspec:event\",\n\t\"contractspec:presentation\",\n\t\"contractspec:form\",\n\t\"contractspec:feature\",\n\t\"contractspec:workflow\",\n\t\"contractspec:template\",\n\t\"contractspec:integration\",\n\t\"contractspec:data-view\",\n\t\"contractspec:migration\",\n\t\"contractspec:telemetry\",\n\t\"contractspec:experiment\",\n\t\"contractspec:app-config\",\n\t\"contractspec:knowledge\"\n];\nconst ContractRegistryItemTypeSchema = z.enum(ContractRegistryItemTypeValues);\nconst ContractRegistryFileSchema = z.object({\n\tpath: z.string().min(1),\n\ttype: z.string().min(1),\n\tcontent: z.string().optional()\n});\nconst ContractRegistryItemSchema = z.object({\n\tname: z.string().min(1),\n\ttype: ContractRegistryItemTypeSchema,\n\tversion: z.number().int().nonnegative(),\n\ttitle: z.string().min(1),\n\tdescription: z.string().min(1),\n\tmeta: z.object({\n\t\tstability: z.enum([\n\t\t\tStabilityEnum.Idea,\n\t\t\tStabilityEnum.InCreation,\n\t\t\tStabilityEnum.Experimental,\n\t\t\tStabilityEnum.Beta,\n\t\t\tStabilityEnum.Stable,\n\t\t\tStabilityEnum.Deprecated\n\t\t]),\n\t\towners: z.array(z.string().min(1)).default([]),\n\t\ttags: z.array(z.string().min(1)).default([])\n\t}),\n\tdependencies: z.array(z.string().min(1)).optional(),\n\tregistryDependencies: z.array(z.string().min(1)).optional(),\n\tfiles: z.array(ContractRegistryFileSchema).min(1),\n\tschema: z.object({\n\t\tinput: z.unknown().optional(),\n\t\toutput: z.unknown().optional()\n\t}).optional()\n});\nconst ContractRegistryManifestSchema = z.object({\n\t$schema: z.string().min(1).optional(),\n\tname: z.string().min(1),\n\thomepage: z.string().min(1).optional(),\n\titems: z.array(ContractRegistryItemSchema)\n});\n\n//#endregion\nexport { ContractRegistryFileSchema, ContractRegistryItemSchema, ContractRegistryItemTypeSchema, ContractRegistryManifestSchema };"],"mappings":";;;;AAoBA,MAAM,iCAAiC,EAAE,KAhBF;CACtC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAC4E;AAC7E,MAAM,6BAA6B,EAAE,OAAO;CAC3C,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE;CACvB,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE;CACvB,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,CAAC;AACF,MAAM,6BAA6B,EAAE,OAAO;CAC3C,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE;CACvB,MAAM;CACN,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa;CACvC,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE;CACxB,aAAa,EAAE,QAAQ,CAAC,IAAI,EAAE;CAC9B,MAAM,EAAE,OAAO;EACd,WAAW,EAAE,KAAK;GACjB,cAAc;GACd,cAAc;GACd,cAAc;GACd,cAAc;GACd,cAAc;GACd,cAAc;GACd,CAAC;EACF,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;EAC9C,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;EAC5C,CAAC;CACF,cAAc,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU;CACnD,sBAAsB,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU;CAC3D,OAAO,EAAE,MAAM,2BAA2B,CAAC,IAAI,EAAE;CACjD,QAAQ,EAAE,OAAO;EAChB,OAAO,EAAE,SAAS,CAAC,UAAU;EAC7B,QAAQ,EAAE,SAAS,CAAC,UAAU;EAC9B,CAAC,CAAC,UAAU;CACb,CAAC;AACF,MAAM,iCAAiC,EAAE,OAAO;CAC/C,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CACrC,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE;CACvB,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CACtC,OAAO,EAAE,MAAM,2BAA2B;CAC1C,CAAC"}
|