@elizaos/plugin-finances 2.0.3-beta.6 → 2.0.3-beta.7
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/dist/actions/finances.d.ts +38 -0
- package/dist/actions/finances.d.ts.map +1 -0
- package/dist/actions/finances.js +368 -0
- package/dist/actions/finances.js.map +1 -0
- package/dist/components/finances/FinancesSpatialView.d.ts +80 -0
- package/dist/components/finances/FinancesSpatialView.d.ts.map +1 -0
- package/dist/components/finances/FinancesSpatialView.js +157 -0
- package/dist/components/finances/FinancesSpatialView.js.map +1 -0
- package/dist/components/finances/FinancesView.d.ts +97 -0
- package/dist/components/finances/FinancesView.d.ts.map +1 -0
- package/dist/components/finances/FinancesView.js +231 -0
- package/dist/components/finances/FinancesView.js.map +1 -0
- package/dist/components/finances/finances-view-bundle.d.ts +10 -0
- package/dist/components/finances/finances-view-bundle.d.ts.map +1 -0
- package/dist/components/finances/finances-view-bundle.js +5 -0
- package/dist/components/finances/finances-view-bundle.js.map +1 -0
- package/dist/db/finances-repository.d.ts +51 -0
- package/dist/db/finances-repository.d.ts.map +1 -0
- package/dist/db/finances-repository.js +521 -0
- package/dist/db/finances-repository.js.map +1 -0
- package/dist/db/index.d.ts +3 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +6 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/schema.d.ts +2615 -0
- package/dist/db/schema.d.ts.map +1 -0
- package/dist/db/schema.js +133 -0
- package/dist/db/schema.js.map +1 -0
- package/dist/db/sql.d.ts +65 -0
- package/dist/db/sql.d.ts.map +1 -0
- package/dist/db/sql.js +182 -0
- package/dist/db/sql.js.map +1 -0
- package/dist/finance-normalize.d.ts +24 -0
- package/dist/finance-normalize.d.ts.map +1 -0
- package/dist/finance-normalize.js +66 -0
- package/dist/finance-normalize.js.map +1 -0
- package/dist/finances-service.d.ts +179 -0
- package/dist/finances-service.d.ts.map +1 -0
- package/dist/finances-service.js +1122 -0
- package/dist/finances-service.js.map +1 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +109 -0
- package/dist/index.js.map +1 -0
- package/dist/payment-csv-import.d.ts +23 -0
- package/dist/payment-csv-import.d.ts.map +1 -0
- package/dist/payment-csv-import.js +271 -0
- package/dist/payment-csv-import.js.map +1 -0
- package/dist/payment-recurrence.d.ts +14 -0
- package/dist/payment-recurrence.d.ts.map +1 -0
- package/dist/payment-recurrence.js +190 -0
- package/dist/payment-recurrence.js.map +1 -0
- package/dist/payment-types.d.ts +158 -0
- package/dist/payment-types.d.ts.map +1 -0
- package/dist/payment-types.js +1 -0
- package/dist/payment-types.js.map +1 -0
- package/dist/plugin.d.ts +15 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +31 -0
- package/dist/plugin.js.map +1 -0
- package/dist/register-terminal-view.d.ts +15 -0
- package/dist/register-terminal-view.d.ts.map +1 -0
- package/dist/register-terminal-view.js +21 -0
- package/dist/register-terminal-view.js.map +1 -0
- package/dist/register.d.ts +9 -0
- package/dist/register.d.ts.map +1 -0
- package/dist/register.js +5 -0
- package/dist/register.js.map +1 -0
- package/dist/services/browser-bridge-seam.d.ts +40 -0
- package/dist/services/browser-bridge-seam.d.ts.map +1 -0
- package/dist/services/browser-bridge-seam.js +39 -0
- package/dist/services/browser-bridge-seam.js.map +1 -0
- package/dist/services/gmail-seam.d.ts +40 -0
- package/dist/services/gmail-seam.d.ts.map +1 -0
- package/dist/services/gmail-seam.js +208 -0
- package/dist/services/gmail-seam.js.map +1 -0
- package/dist/services/migration.d.ts +65 -0
- package/dist/services/migration.d.ts.map +1 -0
- package/dist/services/migration.js +116 -0
- package/dist/services/migration.js.map +1 -0
- package/dist/services/subscriptions-service.d.ts +76 -0
- package/dist/services/subscriptions-service.d.ts.map +1 -0
- package/dist/services/subscriptions-service.js +1002 -0
- package/dist/services/subscriptions-service.js.map +1 -0
- package/dist/subscriptions-playbooks.d.ts +79 -0
- package/dist/subscriptions-playbooks.d.ts.map +1 -0
- package/dist/subscriptions-playbooks.js +871 -0
- package/dist/subscriptions-playbooks.js.map +1 -0
- package/dist/subscriptions-types.d.ts +80 -0
- package/dist/subscriptions-types.d.ts.map +1 -0
- package/dist/subscriptions-types.js +1 -0
- package/dist/subscriptions-types.js.map +1 -0
- package/dist/token-encryption.d.ts +42 -0
- package/dist/token-encryption.d.ts.map +1 -0
- package/dist/token-encryption.js +96 -0
- package/dist/token-encryption.js.map +1 -0
- package/dist/types.d.ts +55 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +18 -0
- package/dist/types.js.map +1 -0
- package/dist/views/bundle.js +411 -0
- package/dist/views/bundle.js.map +1 -0
- package/package.json +11 -11
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FinancesService — the finance back-end (payment sources, transactions,
|
|
3
|
+
* spending summaries, recurring-charge detection, email bills, and the
|
|
4
|
+
* Plaid / PayPal managed bridges).
|
|
5
|
+
*
|
|
6
|
+
* This is the standalone successor to the `withPayments` LifeOps service
|
|
7
|
+
* mixin. It holds its own runtime + {@link FinancesRepository} and the small
|
|
8
|
+
* identity / logging helpers the methods need, so it has no dependency on
|
|
9
|
+
* `@elizaos/plugin-personal-assistant`. Behavior and the data it returns are
|
|
10
|
+
* preserved verbatim from the original mixin.
|
|
11
|
+
*
|
|
12
|
+
* Subscription audit / cancellation lives in the sibling
|
|
13
|
+
* `./services/subscriptions-service.ts` (`SubscriptionsService`), which reaches
|
|
14
|
+
* Gmail + the browser bridge through runtime-service seams.
|
|
15
|
+
*/
|
|
16
|
+
import { type IAgentRuntime } from "@elizaos/core";
|
|
17
|
+
import { PaypalManagedClient, type PaypalTransactionDto, PlaidManagedClient, type PlaidTransactionDto } from "@elizaos/plugin-elizacloud/cloud/managed-payment-clients";
|
|
18
|
+
import { FinancesRepository } from "./db/finances-repository.js";
|
|
19
|
+
import type { AddPaymentSourceRequest, ImportTransactionsCsvRequest, ImportTransactionsCsvResult, LifeOpsPaymentSource, LifeOpsPaymentsDashboard, LifeOpsPaymentTransaction, LifeOpsRecurringCharge, LifeOpsSpendingSummary, LifeOpsUpcomingBill, ListTransactionsRequest, SpendingSummaryRequest } from "./payment-types.js";
|
|
20
|
+
import { type EncryptedTokenEnvelope } from "./token-encryption.js";
|
|
21
|
+
/** Optional construction options (mirrors the LifeOps service shape). */
|
|
22
|
+
export type FinancesServiceOptions = {
|
|
23
|
+
ownerEntityId?: string | null;
|
|
24
|
+
};
|
|
25
|
+
export declare function encryptPaymentMetadataToken(token: string, env?: NodeJS.ProcessEnv): EncryptedTokenEnvelope;
|
|
26
|
+
export declare function readPaymentMetadataToken(value: unknown, field: string, env?: NodeJS.ProcessEnv): string | null;
|
|
27
|
+
export declare function sanitizePaymentSourceForClient(source: LifeOpsPaymentSource): LifeOpsPaymentSource;
|
|
28
|
+
export declare class FinancesService {
|
|
29
|
+
readonly runtime: IAgentRuntime;
|
|
30
|
+
readonly repository: FinancesRepository;
|
|
31
|
+
readonly ownerEntityId: string | null;
|
|
32
|
+
plaidManagedClientCache: PlaidManagedClient | null;
|
|
33
|
+
paypalManagedClientCache: PaypalManagedClient | null;
|
|
34
|
+
constructor(runtime: IAgentRuntime, options?: FinancesServiceOptions);
|
|
35
|
+
agentId(): string;
|
|
36
|
+
private logFinancesWarn;
|
|
37
|
+
listPaymentSources(): Promise<LifeOpsPaymentSource[]>;
|
|
38
|
+
addPaymentSource(request: AddPaymentSourceRequest): Promise<LifeOpsPaymentSource>;
|
|
39
|
+
deletePaymentSource(sourceId: string): Promise<{
|
|
40
|
+
ok: true;
|
|
41
|
+
}>;
|
|
42
|
+
importTransactionsCsv(request: ImportTransactionsCsvRequest): Promise<ImportTransactionsCsvResult>;
|
|
43
|
+
listTransactions(request?: ListTransactionsRequest): Promise<LifeOpsPaymentTransaction[]>;
|
|
44
|
+
getRecurringCharges(args?: {
|
|
45
|
+
sourceId?: string | null;
|
|
46
|
+
sinceDays?: number | null;
|
|
47
|
+
}): Promise<LifeOpsRecurringCharge[]>;
|
|
48
|
+
getSpendingSummary(request?: SpendingSummaryRequest): Promise<LifeOpsSpendingSummary>;
|
|
49
|
+
getPaymentsDashboard(args?: {
|
|
50
|
+
windowDays?: number | null;
|
|
51
|
+
}): Promise<LifeOpsPaymentsDashboard>;
|
|
52
|
+
/**
|
|
53
|
+
* Look up the singleton "Email bills" payment source for this agent,
|
|
54
|
+
* creating it on first use. Bills detected from email are persisted
|
|
55
|
+
* against this source so the existing transactions table can carry them
|
|
56
|
+
* without a parallel schema.
|
|
57
|
+
*/
|
|
58
|
+
getOrCreateEmailPaymentSource(): Promise<LifeOpsPaymentSource>;
|
|
59
|
+
/**
|
|
60
|
+
* Idempotent insert of a bill extracted from an email. The transaction
|
|
61
|
+
* id is derived from `(agent, sourceId, sourceMessageId)` so re-ingesting
|
|
62
|
+
* the same Gmail message never creates a duplicate row.
|
|
63
|
+
*/
|
|
64
|
+
upsertBillFromEmail(args: {
|
|
65
|
+
sourceMessageId: string;
|
|
66
|
+
merchant: string;
|
|
67
|
+
amountUsd: number;
|
|
68
|
+
currency: string;
|
|
69
|
+
dueDate: string | null;
|
|
70
|
+
postedAt?: string | null;
|
|
71
|
+
confidence: number;
|
|
72
|
+
}): Promise<{
|
|
73
|
+
inserted: boolean;
|
|
74
|
+
transactionId: string;
|
|
75
|
+
}>;
|
|
76
|
+
/**
|
|
77
|
+
* Mark a previously-extracted bill as paid. Idempotent — repeated calls
|
|
78
|
+
* just re-stamp the metadata. The row itself is not deleted so the
|
|
79
|
+
* transaction history stays intact.
|
|
80
|
+
*/
|
|
81
|
+
markBillPaid(args: {
|
|
82
|
+
billId: string;
|
|
83
|
+
paidAt?: string | null;
|
|
84
|
+
}): Promise<{
|
|
85
|
+
ok: true;
|
|
86
|
+
}>;
|
|
87
|
+
/**
|
|
88
|
+
* Push a bill's due date out by N days. Used for "Snooze 1w" UI.
|
|
89
|
+
*/
|
|
90
|
+
snoozeBill(args: {
|
|
91
|
+
billId: string;
|
|
92
|
+
days: number;
|
|
93
|
+
}): Promise<{
|
|
94
|
+
ok: true;
|
|
95
|
+
dueDate: string;
|
|
96
|
+
}>;
|
|
97
|
+
/**
|
|
98
|
+
* Read bills extracted from email. This includes overdue and no-date bills
|
|
99
|
+
* so extraction misses do not disappear from the user's review queue.
|
|
100
|
+
*/
|
|
101
|
+
getUpcomingBills(args?: {
|
|
102
|
+
now?: Date;
|
|
103
|
+
}): Promise<LifeOpsUpcomingBill[]>;
|
|
104
|
+
summarizePaymentsDashboard(dashboard: LifeOpsPaymentsDashboard): string;
|
|
105
|
+
getPlaidManagedClient(): PlaidManagedClient;
|
|
106
|
+
/** Returns a Plaid Link token for the frontend to drive the Plaid Link UI. */
|
|
107
|
+
createPlaidLinkToken(): Promise<{
|
|
108
|
+
linkToken: string;
|
|
109
|
+
expiration: string;
|
|
110
|
+
environment: string;
|
|
111
|
+
}>;
|
|
112
|
+
/**
|
|
113
|
+
* Completes a Plaid Link flow by exchanging the public_token for an
|
|
114
|
+
* access_token and creating (or updating) a payment_source row whose
|
|
115
|
+
* metadata holds the access_token + cursor for sync.
|
|
116
|
+
*/
|
|
117
|
+
completePlaidLink(args: {
|
|
118
|
+
publicToken: string;
|
|
119
|
+
label?: string | null;
|
|
120
|
+
}): Promise<LifeOpsPaymentSource>;
|
|
121
|
+
/**
|
|
122
|
+
* Pulls the latest transaction delta for a Plaid-backed source and
|
|
123
|
+
* inserts the new rows into life_payment_transactions.
|
|
124
|
+
*/
|
|
125
|
+
syncPlaidTransactions(args: {
|
|
126
|
+
sourceId: string;
|
|
127
|
+
}): Promise<{
|
|
128
|
+
inserted: number;
|
|
129
|
+
skipped: number;
|
|
130
|
+
nextCursor: string;
|
|
131
|
+
}>;
|
|
132
|
+
getPaypalManagedClient(): PaypalManagedClient;
|
|
133
|
+
/** Returns a PayPal Login URL the frontend should open in a popup. */
|
|
134
|
+
createPaypalAuthorizeUrl(args: {
|
|
135
|
+
state: string;
|
|
136
|
+
}): Promise<{
|
|
137
|
+
url: string;
|
|
138
|
+
scope: string;
|
|
139
|
+
environment: "live" | "sandbox";
|
|
140
|
+
}>;
|
|
141
|
+
/**
|
|
142
|
+
* Completes the PayPal OAuth flow by exchanging the authorization code
|
|
143
|
+
* for tokens, then creating a payment_source row keyed to the PayPal
|
|
144
|
+
* payer. The access_token + refresh_token are stored in source.metadata
|
|
145
|
+
* so the runtime can refresh on demand without re-prompting the user.
|
|
146
|
+
*/
|
|
147
|
+
completePaypalLink(args: {
|
|
148
|
+
code: string;
|
|
149
|
+
label?: string | null;
|
|
150
|
+
}): Promise<{
|
|
151
|
+
source: LifeOpsPaymentSource;
|
|
152
|
+
capability: {
|
|
153
|
+
hasReporting: boolean;
|
|
154
|
+
hasIdentity: boolean;
|
|
155
|
+
};
|
|
156
|
+
}>;
|
|
157
|
+
/**
|
|
158
|
+
* Pulls PayPal transactions for a date window via the Reporting API.
|
|
159
|
+
* Returns the imported count and an explicit `fallback: "csv_export"`
|
|
160
|
+
* flag when the account is personal-tier.
|
|
161
|
+
*/
|
|
162
|
+
syncPaypalTransactions(args: {
|
|
163
|
+
sourceId: string;
|
|
164
|
+
windowDays?: number | null;
|
|
165
|
+
}): Promise<{
|
|
166
|
+
inserted: number;
|
|
167
|
+
skipped: number;
|
|
168
|
+
fallback: "csv_export" | null;
|
|
169
|
+
}>;
|
|
170
|
+
upsertPaypalTransaction(args: {
|
|
171
|
+
sourceId: string;
|
|
172
|
+
transaction: PaypalTransactionDto;
|
|
173
|
+
}): Promise<boolean>;
|
|
174
|
+
upsertPlaidTransaction(args: {
|
|
175
|
+
sourceId: string;
|
|
176
|
+
transaction: PlaidTransactionDto;
|
|
177
|
+
}): Promise<boolean>;
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=finances-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"finances-service.d.ts","sourceRoot":"","sources":["../src/finances-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,EAAE,KAAK,aAAa,EAAU,MAAM,eAAe,CAAC;AAC3D,OAAO,EAKL,mBAAmB,EAEnB,KAAK,oBAAoB,EAEzB,kBAAkB,EAGlB,KAAK,mBAAmB,EAEzB,MAAM,0DAA0D,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAejE,OAAO,KAAK,EACV,uBAAuB,EACvB,4BAA4B,EAC5B,2BAA2B,EAC3B,oBAAoB,EAEpB,wBAAwB,EACxB,yBAAyB,EACzB,sBAAsB,EAEtB,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAEL,KAAK,sBAAsB,EAI5B,MAAM,uBAAuB,CAAC;AAe/B,yEAAyE;AACzE,MAAM,MAAM,sBAAsB,GAAG;IACnC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,CAAC;AA8FF,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,MAAM,EACb,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,sBAAsB,CAIxB;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,EACb,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,GAAG,IAAI,CAkBf;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,oBAAoB,GAC3B,oBAAoB,CAQtB;AA2ID,qBAAa,eAAe;aAOR,OAAO,EAAE,aAAa;IANxC,SAAgB,UAAU,EAAE,kBAAkB,CAAC;IAC/C,SAAgB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,uBAAuB,EAAE,kBAAkB,GAAG,IAAI,CAAQ;IAC1D,wBAAwB,EAAE,mBAAmB,GAAG,IAAI,CAAQ;gBAGjD,OAAO,EAAE,aAAa,EACtC,OAAO,GAAE,sBAA2B;IAMtC,OAAO,IAAI,MAAM;IAIjB,OAAO,CAAC,eAAe;IAgBjB,kBAAkB,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAKrD,gBAAgB,CACpB,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,oBAAoB,CAAC;IA6B1B,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,CAAC;IAM5D,qBAAqB,CACzB,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,2BAA2B,CAAC;IAoEjC,gBAAgB,CACpB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,yBAAyB,EAAE,CAAC;IAejC,mBAAmB,CACvB,IAAI,GAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAO,GACjE,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAmB9B,kBAAkB,CACtB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,sBAAsB,CAAC;IA2B5B,oBAAoB,CACxB,IAAI,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAO,GACxC,OAAO,CAAC,wBAAwB,CAAC;IA+CpC;;;;;OAKG;IACG,6BAA6B,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAuBpE;;;;OAIG;IACG,mBAAmB,CAAC,IAAI,EAAE;QAC9B,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,UAAU,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;IAmDzD;;;;OAIG;IACG,YAAY,CAAC,IAAI,EAAE;QACvB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,CAAC;IAyBzB;;OAEG;IACG,UAAU,CAAC,IAAI,EAAE;QACrB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,IAAI,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAsC1C;;;OAGG;IACG,gBAAgB,CACpB,IAAI,GAAE;QAAE,GAAG,CAAC,EAAE,IAAI,CAAA;KAAO,GACxB,OAAO,CAAC,mBAAmB,EAAE,CAAC;IA8DjC,0BAA0B,CAAC,SAAS,EAAE,wBAAwB,GAAG,MAAM;IAoCvE,qBAAqB,IAAI,kBAAkB;IAS3C,8EAA8E;IACxE,oBAAoB,IAAI,OAAO,CAAC;QACpC,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IAWF;;;;OAIG;IACG,iBAAiB,CAAC,IAAI,EAAE;QAC5B,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA+CjC;;;OAGG;IACG,qBAAqB,CAAC,IAAI,EAAE;QAChC,QAAQ,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAoGtE,sBAAsB,IAAI,mBAAmB;IAS7C,sEAAsE;IAChE,wBAAwB,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAC/D,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;KACjC,CAAC;IAYF;;;;;OAKG;IACG,kBAAkB,CAAC,IAAI,EAAE;QAC7B,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB,GAAG,OAAO,CAAC;QACV,MAAM,EAAE,oBAAoB,CAAC;QAC7B,UAAU,EAAE;YAAE,YAAY,EAAE,OAAO,CAAC;YAAC,WAAW,EAAE,OAAO,CAAA;SAAE,CAAC;KAC7D,CAAC;IAmDF;;;;OAIG;IACG,sBAAsB,CAAC,IAAI,EAAE;QACjC,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5B,GAAG,OAAO,CAAC;QACV,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;KAC/B,CAAC;IAsKI,uBAAuB,CAAC,IAAI,EAAE;QAClC,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,oBAAoB,CAAC;KACnC,GAAG,OAAO,CAAC,OAAO,CAAC;IA8Cd,sBAAsB,CAAC,IAAI,EAAE;QACjC,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,mBAAmB,CAAC;KAClC,GAAG,OAAO,CAAC,OAAO,CAAC;CAqCrB"}
|