@lssm/lib.contracts 1.7.1 → 1.7.3
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/app-config/contracts.d.ts +49 -51
- package/dist/app-config/contracts.d.ts.map +1 -1
- package/dist/app-config/contracts.js +1 -1
- package/dist/app-config/contracts.js.map +1 -1
- package/dist/app-config/events.d.ts +26 -28
- package/dist/app-config/events.d.ts.map +1 -1
- package/dist/app-config/events.js +1 -1
- package/dist/app-config/events.js.map +1 -1
- package/dist/app-config/lifecycle-contracts.d.ts +79 -81
- package/dist/app-config/lifecycle-contracts.d.ts.map +1 -1
- package/dist/app-config/lifecycle-contracts.js +1 -1
- package/dist/app-config/lifecycle-contracts.js.map +1 -1
- package/dist/capabilities/openbanking.js.map +1 -1
- package/dist/client/react/form-render.d.ts +0 -1
- package/dist/client/react/form-render.d.ts.map +1 -1
- package/dist/contracts-adapter-input.d.ts +0 -1
- package/dist/contracts-adapter-input.d.ts.map +1 -1
- package/dist/events.d.ts +0 -1
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +1 -1
- package/dist/events.js.map +1 -1
- package/dist/forms.d.ts +0 -1
- package/dist/forms.d.ts.map +1 -1
- package/dist/install.d.ts +0 -1
- package/dist/install.d.ts.map +1 -1
- package/dist/integrations/contracts.d.ts +101 -103
- package/dist/integrations/contracts.d.ts.map +1 -1
- package/dist/integrations/contracts.js +1 -1
- package/dist/integrations/contracts.js.map +1 -1
- package/dist/integrations/openbanking/contracts/accounts.d.ts +65 -67
- package/dist/integrations/openbanking/contracts/accounts.d.ts.map +1 -1
- package/dist/integrations/openbanking/contracts/accounts.js +1 -1
- package/dist/integrations/openbanking/contracts/accounts.js.map +1 -1
- package/dist/integrations/openbanking/contracts/balances.d.ts +33 -35
- package/dist/integrations/openbanking/contracts/balances.d.ts.map +1 -1
- package/dist/integrations/openbanking/contracts/balances.js +1 -1
- package/dist/integrations/openbanking/contracts/balances.js.map +1 -1
- package/dist/integrations/openbanking/contracts/index.js.map +1 -1
- package/dist/integrations/openbanking/contracts/transactions.d.ts +47 -49
- package/dist/integrations/openbanking/contracts/transactions.d.ts.map +1 -1
- package/dist/integrations/openbanking/contracts/transactions.js +1 -1
- package/dist/integrations/openbanking/contracts/transactions.js.map +1 -1
- package/dist/integrations/openbanking/guards.js.map +1 -1
- package/dist/integrations/openbanking/models.d.ts +54 -57
- package/dist/integrations/openbanking/models.d.ts.map +1 -1
- package/dist/integrations/openbanking/models.js +1 -1
- package/dist/integrations/openbanking/models.js.map +1 -1
- package/dist/integrations/openbanking/telemetry.js.map +1 -1
- package/dist/integrations/providers/powens.js.map +1 -1
- package/dist/jsonschema.d.ts +1 -1
- package/dist/jsonschema.d.ts.map +1 -1
- package/dist/knowledge/contracts.d.ts +65 -67
- package/dist/knowledge/contracts.d.ts.map +1 -1
- package/dist/knowledge/contracts.js +1 -1
- package/dist/knowledge/contracts.js.map +1 -1
- package/dist/knowledge/spaces/product-canon.js.map +1 -1
- package/dist/knowledge/spaces/support-faq.js.map +1 -1
- package/dist/knowledge/spec.js.map +1 -1
- package/dist/onboarding-base.d.ts +28 -30
- package/dist/onboarding-base.d.ts.map +1 -1
- package/dist/onboarding-base.js +1 -1
- package/dist/onboarding-base.js.map +1 -1
- package/dist/presentations.d.ts +0 -1
- package/dist/presentations.d.ts.map +1 -1
- package/dist/presentations.v2.d.ts +0 -1
- package/dist/presentations.v2.d.ts.map +1 -1
- package/dist/regenerator/executor.js.map +1 -1
- package/dist/regenerator/service.js.map +1 -1
- package/dist/regenerator/sinks.js.map +1 -1
- package/dist/regenerator/utils.js.map +1 -1
- package/dist/registry.d.ts +0 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/resources.d.ts.map +1 -1
- package/dist/schema/{dist → src}/FieldType.js +1 -1
- package/dist/schema/src/FieldType.js.map +1 -0
- package/dist/schema/src/ScalarTypeEnum.js +2 -0
- package/dist/schema/src/ScalarTypeEnum.js.map +1 -0
- package/dist/schema/{dist → src}/SchemaModel.js +1 -1
- package/dist/schema/src/SchemaModel.js.map +1 -0
- package/dist/schema/src/index.js +1 -0
- package/dist/spec.d.ts +0 -1
- package/dist/spec.d.ts.map +1 -1
- package/dist/workflow/spec.d.ts.map +1 -1
- package/package.json +339 -168
- package/dist/schema/dist/FieldType.js.map +0 -1
- package/dist/schema/dist/ScalarTypeEnum.js +0 -2
- package/dist/schema/dist/ScalarTypeEnum.js.map +0 -1
- package/dist/schema/dist/SchemaModel.js.map +0 -1
- package/dist/schema/dist/index.js +0 -1
- /package/dist/schema/{dist → src}/EnumType.js +0 -0
|
@@ -1,20 +1,18 @@
|
|
|
1
1
|
import { ContractSpec } from "../../../spec.js";
|
|
2
2
|
import { SpecRegistry } from "../../../registry.js";
|
|
3
|
-
import * as _lssm_lib_schema365 from "@lssm/lib.schema";
|
|
4
|
-
import { SchemaModel } from "@lssm/lib.schema";
|
|
5
3
|
|
|
6
4
|
//#region src/integrations/openbanking/contracts/balances.d.ts
|
|
7
5
|
declare const OpenBankingGetBalances: ContractSpec<SchemaModel<{
|
|
8
6
|
tenantId: {
|
|
9
|
-
type:
|
|
7
|
+
type: void 0<string, string>;
|
|
10
8
|
isOptional: false;
|
|
11
9
|
};
|
|
12
10
|
accountId: {
|
|
13
|
-
type:
|
|
11
|
+
type: void 0<string, string>;
|
|
14
12
|
isOptional: false;
|
|
15
13
|
};
|
|
16
14
|
balanceTypes: {
|
|
17
|
-
type:
|
|
15
|
+
type: void 0<string, string>;
|
|
18
16
|
isArray: true;
|
|
19
17
|
isOptional: true;
|
|
20
18
|
};
|
|
@@ -22,47 +20,47 @@ declare const OpenBankingGetBalances: ContractSpec<SchemaModel<{
|
|
|
22
20
|
balances: {
|
|
23
21
|
type: SchemaModel<{
|
|
24
22
|
id: {
|
|
25
|
-
type:
|
|
23
|
+
type: void 0<string, string>;
|
|
26
24
|
isOptional: false;
|
|
27
25
|
};
|
|
28
26
|
accountId: {
|
|
29
|
-
type:
|
|
27
|
+
type: void 0<string, string>;
|
|
30
28
|
isOptional: false;
|
|
31
29
|
};
|
|
32
30
|
tenantId: {
|
|
33
|
-
type:
|
|
31
|
+
type: void 0<string, string>;
|
|
34
32
|
isOptional: false;
|
|
35
33
|
};
|
|
36
34
|
connectionId: {
|
|
37
|
-
type:
|
|
35
|
+
type: void 0<string, string>;
|
|
38
36
|
isOptional: false;
|
|
39
37
|
};
|
|
40
38
|
balanceType: {
|
|
41
|
-
type:
|
|
39
|
+
type: void 0<string, string>;
|
|
42
40
|
isOptional: false;
|
|
43
41
|
};
|
|
44
42
|
currentBalance: {
|
|
45
|
-
type:
|
|
43
|
+
type: void 0<number, number>;
|
|
46
44
|
isOptional: false;
|
|
47
45
|
};
|
|
48
46
|
availableBalance: {
|
|
49
|
-
type:
|
|
47
|
+
type: void 0<number, number>;
|
|
50
48
|
isOptional: true;
|
|
51
49
|
};
|
|
52
50
|
currency: {
|
|
53
|
-
type:
|
|
51
|
+
type: void 0<string, string>;
|
|
54
52
|
isOptional: false;
|
|
55
53
|
};
|
|
56
54
|
lastUpdatedAt: {
|
|
57
|
-
type:
|
|
55
|
+
type: void 0<Date, string>;
|
|
58
56
|
isOptional: false;
|
|
59
57
|
};
|
|
60
58
|
createdAt: {
|
|
61
|
-
type:
|
|
59
|
+
type: void 0<Date, string>;
|
|
62
60
|
isOptional: false;
|
|
63
61
|
};
|
|
64
62
|
metadata: {
|
|
65
|
-
type:
|
|
63
|
+
type: void 0<Record<string, unknown>, Record<string, unknown>>;
|
|
66
64
|
isOptional: true;
|
|
67
65
|
};
|
|
68
66
|
}>;
|
|
@@ -70,77 +68,77 @@ declare const OpenBankingGetBalances: ContractSpec<SchemaModel<{
|
|
|
70
68
|
isArray: true;
|
|
71
69
|
};
|
|
72
70
|
asOf: {
|
|
73
|
-
type:
|
|
71
|
+
type: void 0<Date, string>;
|
|
74
72
|
isOptional: true;
|
|
75
73
|
};
|
|
76
74
|
}>, undefined>;
|
|
77
75
|
declare const OpenBankingRefreshBalances: ContractSpec<SchemaModel<{
|
|
78
76
|
tenantId: {
|
|
79
|
-
type:
|
|
77
|
+
type: void 0<string, string>;
|
|
80
78
|
isOptional: false;
|
|
81
79
|
};
|
|
82
80
|
accountId: {
|
|
83
|
-
type:
|
|
81
|
+
type: void 0<string, string>;
|
|
84
82
|
isOptional: false;
|
|
85
83
|
};
|
|
86
84
|
connectionId: {
|
|
87
|
-
type:
|
|
85
|
+
type: void 0<string, string>;
|
|
88
86
|
isOptional: true;
|
|
89
87
|
};
|
|
90
88
|
balanceTypes: {
|
|
91
|
-
type:
|
|
89
|
+
type: void 0<string, string>;
|
|
92
90
|
isArray: true;
|
|
93
91
|
isOptional: true;
|
|
94
92
|
};
|
|
95
93
|
forceRefresh: {
|
|
96
|
-
type:
|
|
94
|
+
type: void 0<boolean, boolean>;
|
|
97
95
|
isOptional: true;
|
|
98
96
|
};
|
|
99
97
|
}>, SchemaModel<{
|
|
100
98
|
balances: {
|
|
101
99
|
type: SchemaModel<{
|
|
102
100
|
id: {
|
|
103
|
-
type:
|
|
101
|
+
type: void 0<string, string>;
|
|
104
102
|
isOptional: false;
|
|
105
103
|
};
|
|
106
104
|
accountId: {
|
|
107
|
-
type:
|
|
105
|
+
type: void 0<string, string>;
|
|
108
106
|
isOptional: false;
|
|
109
107
|
};
|
|
110
108
|
tenantId: {
|
|
111
|
-
type:
|
|
109
|
+
type: void 0<string, string>;
|
|
112
110
|
isOptional: false;
|
|
113
111
|
};
|
|
114
112
|
connectionId: {
|
|
115
|
-
type:
|
|
113
|
+
type: void 0<string, string>;
|
|
116
114
|
isOptional: false;
|
|
117
115
|
};
|
|
118
116
|
balanceType: {
|
|
119
|
-
type:
|
|
117
|
+
type: void 0<string, string>;
|
|
120
118
|
isOptional: false;
|
|
121
119
|
};
|
|
122
120
|
currentBalance: {
|
|
123
|
-
type:
|
|
121
|
+
type: void 0<number, number>;
|
|
124
122
|
isOptional: false;
|
|
125
123
|
};
|
|
126
124
|
availableBalance: {
|
|
127
|
-
type:
|
|
125
|
+
type: void 0<number, number>;
|
|
128
126
|
isOptional: true;
|
|
129
127
|
};
|
|
130
128
|
currency: {
|
|
131
|
-
type:
|
|
129
|
+
type: void 0<string, string>;
|
|
132
130
|
isOptional: false;
|
|
133
131
|
};
|
|
134
132
|
lastUpdatedAt: {
|
|
135
|
-
type:
|
|
133
|
+
type: void 0<Date, string>;
|
|
136
134
|
isOptional: false;
|
|
137
135
|
};
|
|
138
136
|
createdAt: {
|
|
139
|
-
type:
|
|
137
|
+
type: void 0<Date, string>;
|
|
140
138
|
isOptional: false;
|
|
141
139
|
};
|
|
142
140
|
metadata: {
|
|
143
|
-
type:
|
|
141
|
+
type: void 0<Record<string, unknown>, Record<string, unknown>>;
|
|
144
142
|
isOptional: true;
|
|
145
143
|
};
|
|
146
144
|
}>;
|
|
@@ -148,11 +146,11 @@ declare const OpenBankingRefreshBalances: ContractSpec<SchemaModel<{
|
|
|
148
146
|
isArray: true;
|
|
149
147
|
};
|
|
150
148
|
refreshedAt: {
|
|
151
|
-
type:
|
|
149
|
+
type: void 0<Date, string>;
|
|
152
150
|
isOptional: false;
|
|
153
151
|
};
|
|
154
152
|
errors: {
|
|
155
|
-
type:
|
|
153
|
+
type: void 0<string, string>;
|
|
156
154
|
isArray: true;
|
|
157
155
|
isOptional: true;
|
|
158
156
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"balances.d.ts","names":[],"sources":["../../../../src/integrations/openbanking/contracts/balances.ts"],"sourcesContent":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"balances.d.ts","names":[],"sources":["../../../../src/integrations/openbanking/contracts/balances.ts"],"sourcesContent":[],"mappings":";;;;cA2Ea,wBAAsB,aAAA;EAAtB,QAAA,EAAA;IAmBX,IAAA,EAAA,KAAA,CAAA,CAAA,MAAA,EAAA,MAAA,CAAA;;;EAnBiC,SAAA,EAAA;IAAA,IAAA,QAAA,CAAA,MAAA,EAAA,MAAA,CAAA;;;;;;;;;;;;cAAA,KAAA;;;;;;;MAAA,QAAA,EAAA;QAAA,IAAA,QAAA,CAAA,MAAA,EAAA,MAAA,CAAA;QAqBtB,UAAA,EAAA,KAwDX;MAAA,CAAA;;;;;MAxDqC,WAAA,EAAA;QAAA,IAAA,QAAA,CAAA,MAAA,EAAA,MAAA,CAAA;;;;;;;;;;;;;;;;;;;;QAAA,IAAA,QAAA,KAAA,EAAA,MAAA,CAAA;QAAA,UAAA,EAAA,KAAA;MA0D1B,CAAA;MAMG,QAAA,EAAA;;;;;;;;;;;;;cAhEH,4BAA0B,aAAA;;UAwDrC,KAAA;;;;;;;;;;;;;;;;;;;;;;;;cAxDqC,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA0D1B,6BAA6B,eAAe;iBAMzC,mCAAA,WACJ,eACT"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{ScalarTypeEnum as e}from"../../../schema/src/ScalarTypeEnum.js";import{SchemaModel as t}from"../../../schema/src/SchemaModel.js";import"../../../schema/src/index.js";import{defineCommand as n,defineQuery as r}from"../../../spec.js";import{AccountBalanceRecord as i}from"../models.js";import{OPENBANKING_TELEMETRY_EVENTS as a}from"../telemetry.js";const o=new t({name:`OpenBankingGetBalancesInput`,description:`Parameters for retrieving bank account balances from the canonical ledger.`,fields:{tenantId:{type:e.ID(),isOptional:!1},accountId:{type:e.ID(),isOptional:!1},balanceTypes:{type:e.String_unsecure(),isArray:!0,isOptional:!0}}}),s=new t({name:`OpenBankingGetBalancesOutput`,description:`Canonical balances for a bank account.`,fields:{balances:{type:i,isOptional:!1,isArray:!0},asOf:{type:e.DateTime(),isOptional:!0}}}),c=new t({name:`OpenBankingRefreshBalancesInput`,description:`Command payload to refresh balances for a bank account via the open banking provider.`,fields:{tenantId:{type:e.ID(),isOptional:!1},accountId:{type:e.ID(),isOptional:!1},connectionId:{type:e.ID(),isOptional:!0},balanceTypes:{type:e.String_unsecure(),isArray:!0,isOptional:!0},forceRefresh:{type:e.Boolean(),isOptional:!0}}}),l=new t({name:`OpenBankingRefreshBalancesOutput`,description:`Result of a balance refresh against the open banking provider.`,fields:{balances:{type:i,isOptional:!1,isArray:!0},refreshedAt:{type:e.DateTime(),isOptional:!1},errors:{type:e.String_unsecure(),isArray:!0,isOptional:!0}}}),u=r({meta:{name:`openbanking.balances.get`,version:1,description:`Retrieve the latest cached balances for a bank account.`,goal:`Expose current and available balances required by dashboards and analytics.`,context:`Used by Pocket Family Office UI surfaces and automation steps that require balance totals prior to generating summaries.`,owners:[`platform.finance`],tags:[`open-banking`,`powens`,`balances`],stability:`experimental`},io:{input:o,output:s},policy:{auth:`user`}}),d=n({meta:{name:`openbanking.balances.refresh`,version:1,description:`Refresh balances for a bank account via the configured open banking provider.`,goal:`Ensure canonical balance records reflect the latest values from Powens.`,context:`Triggered by scheduled workflows before generating summaries or forecasting cashflow.`,owners:[`platform.finance`],tags:[`open-banking`,`powens`,`balances`],stability:`experimental`},io:{input:c,output:l},policy:{auth:`admin`},telemetry:{success:{event:{name:a.balancesRefreshed},properties:({input:e,output:t})=>{let n=e,r=t;return{tenantId:n?.tenantId,accountId:n?.accountId,refreshedAt:r?.refreshedAt,balanceCount:Array.isArray(r?.balances)?r?.balances.length:void 0}}},failure:{event:{name:a.balancesRefreshFailed},properties:({input:e,error:t})=>{let n=e;return{tenantId:n?.tenantId,accountId:n?.accountId,error:t instanceof Error?t.message:String(t??`unknown`)}}}}}),f={OpenBankingGetBalances:u,OpenBankingRefreshBalances:d};function p(e){return e.register(u).register(d)}export{u as OpenBankingGetBalances,d as OpenBankingRefreshBalances,f as openBankingBalanceContracts,p as registerOpenBankingBalanceContracts};
|
|
2
2
|
//# sourceMappingURL=balances.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"balances.js","names":["
|
|
1
|
+
{"version":3,"file":"balances.js","names":["openBankingBalanceContracts: Record<string, ContractSpec<any, any>>"],"sources":["../../../../src/integrations/openbanking/contracts/balances.ts"],"sourcesContent":["import {\n ScalarTypeEnum,\n SchemaModel,\n} from '@lssm/lib.schema';\nimport {\n defineCommand,\n defineQuery,\n type ContractSpec,\n} from '../../../spec';\nimport type { SpecRegistry } from '../../../registry';\nimport { AccountBalanceRecord } from '../models';\nimport { OPENBANKING_TELEMETRY_EVENTS } from '../telemetry';\n\nconst OpenBankingGetBalancesInput = new SchemaModel({\n name: 'OpenBankingGetBalancesInput',\n description: 'Parameters for retrieving bank account balances from the canonical ledger.',\n fields: {\n tenantId: { type: ScalarTypeEnum.ID(), isOptional: false },\n accountId: { type: ScalarTypeEnum.ID(), isOptional: false },\n balanceTypes: {\n type: ScalarTypeEnum.String_unsecure(),\n isArray: true,\n isOptional: true,\n },\n },\n});\n\nconst OpenBankingGetBalancesOutput = new SchemaModel({\n name: 'OpenBankingGetBalancesOutput',\n description: 'Canonical balances for a bank account.',\n fields: {\n balances: {\n type: AccountBalanceRecord,\n isOptional: false,\n isArray: true,\n },\n asOf: { type: ScalarTypeEnum.DateTime(), isOptional: true },\n },\n});\n\nconst OpenBankingRefreshBalancesInput = new SchemaModel({\n name: 'OpenBankingRefreshBalancesInput',\n description:\n 'Command payload to refresh balances for a bank account via the open banking provider.',\n fields: {\n tenantId: { type: ScalarTypeEnum.ID(), isOptional: false },\n accountId: { type: ScalarTypeEnum.ID(), isOptional: false },\n connectionId: { type: ScalarTypeEnum.ID(), isOptional: true },\n balanceTypes: {\n type: ScalarTypeEnum.String_unsecure(),\n isArray: true,\n isOptional: true,\n },\n forceRefresh: { type: ScalarTypeEnum.Boolean(), isOptional: true },\n },\n});\n\nconst OpenBankingRefreshBalancesOutput = new SchemaModel({\n name: 'OpenBankingRefreshBalancesOutput',\n description: 'Result of a balance refresh against the open banking provider.',\n fields: {\n balances: {\n type: AccountBalanceRecord,\n isOptional: false,\n isArray: true,\n },\n refreshedAt: { type: ScalarTypeEnum.DateTime(), isOptional: false },\n errors: {\n type: ScalarTypeEnum.String_unsecure(),\n isArray: true,\n isOptional: true,\n },\n },\n});\n\nexport const OpenBankingGetBalances = defineQuery({\n meta: {\n name: 'openbanking.balances.get',\n version: 1,\n description: 'Retrieve the latest cached balances for a bank account.',\n goal: 'Expose current and available balances required by dashboards and analytics.',\n context:\n 'Used by Pocket Family Office UI surfaces and automation steps that require balance totals prior to generating summaries.',\n owners: ['platform.finance'],\n tags: ['open-banking', 'powens', 'balances'],\n stability: 'experimental',\n },\n io: {\n input: OpenBankingGetBalancesInput,\n output: OpenBankingGetBalancesOutput,\n },\n policy: {\n auth: 'user',\n },\n});\n\nexport const OpenBankingRefreshBalances = defineCommand({\n meta: {\n name: 'openbanking.balances.refresh',\n version: 1,\n description: 'Refresh balances for a bank account via the configured open banking provider.',\n goal: 'Ensure canonical balance records reflect the latest values from Powens.',\n context:\n 'Triggered by scheduled workflows before generating summaries or forecasting cashflow.',\n owners: ['platform.finance'],\n tags: ['open-banking', 'powens', 'balances'],\n stability: 'experimental',\n },\n io: {\n input: OpenBankingRefreshBalancesInput,\n output: OpenBankingRefreshBalancesOutput,\n },\n policy: {\n auth: 'admin',\n },\n telemetry: {\n success: {\n event: { name: OPENBANKING_TELEMETRY_EVENTS.balancesRefreshed },\n properties: ({ input, output }) => {\n const payload = input as {\n tenantId?: string;\n accountId?: string;\n };\n const result = output as {\n balances?: unknown[];\n refreshedAt?: string;\n } | null;\n return {\n tenantId: payload?.tenantId,\n accountId: payload?.accountId,\n refreshedAt: result?.refreshedAt,\n balanceCount: Array.isArray(result?.balances)\n ? result?.balances.length\n : undefined,\n };\n },\n },\n failure: {\n event: { name: OPENBANKING_TELEMETRY_EVENTS.balancesRefreshFailed },\n properties: ({ input, error }) => {\n const payload = input as {\n tenantId?: string;\n accountId?: string;\n };\n return {\n tenantId: payload?.tenantId,\n accountId: payload?.accountId,\n error: error instanceof Error ? error.message : String(error ?? 'unknown'),\n };\n },\n },\n },\n});\n\nexport const openBankingBalanceContracts: Record<string, ContractSpec<any, any>> =\n {\n OpenBankingGetBalances,\n OpenBankingRefreshBalances,\n };\n\nexport function registerOpenBankingBalanceContracts(\n registry: SpecRegistry\n): SpecRegistry {\n return registry\n .register(OpenBankingGetBalances)\n .register(OpenBankingRefreshBalances);\n}\n\n"],"mappings":"kWAaA,MAAM,EAA8B,IAAI,EAAY,CAClD,KAAM,8BACN,YAAa,6EACb,OAAQ,CACN,SAAU,CAAE,KAAM,EAAe,IAAI,CAAE,WAAY,GAAO,CAC1D,UAAW,CAAE,KAAM,EAAe,IAAI,CAAE,WAAY,GAAO,CAC3D,aAAc,CACZ,KAAM,EAAe,iBAAiB,CACtC,QAAS,GACT,WAAY,GACb,CACF,CACF,CAAC,CAEI,EAA+B,IAAI,EAAY,CACnD,KAAM,+BACN,YAAa,yCACb,OAAQ,CACN,SAAU,CACR,KAAM,EACN,WAAY,GACZ,QAAS,GACV,CACD,KAAM,CAAE,KAAM,EAAe,UAAU,CAAE,WAAY,GAAM,CAC5D,CACF,CAAC,CAEI,EAAkC,IAAI,EAAY,CACtD,KAAM,kCACN,YACE,wFACF,OAAQ,CACN,SAAU,CAAE,KAAM,EAAe,IAAI,CAAE,WAAY,GAAO,CAC1D,UAAW,CAAE,KAAM,EAAe,IAAI,CAAE,WAAY,GAAO,CAC3D,aAAc,CAAE,KAAM,EAAe,IAAI,CAAE,WAAY,GAAM,CAC7D,aAAc,CACZ,KAAM,EAAe,iBAAiB,CACtC,QAAS,GACT,WAAY,GACb,CACD,aAAc,CAAE,KAAM,EAAe,SAAS,CAAE,WAAY,GAAM,CACnE,CACF,CAAC,CAEI,EAAmC,IAAI,EAAY,CACvD,KAAM,mCACN,YAAa,iEACb,OAAQ,CACN,SAAU,CACR,KAAM,EACN,WAAY,GACZ,QAAS,GACV,CACD,YAAa,CAAE,KAAM,EAAe,UAAU,CAAE,WAAY,GAAO,CACnE,OAAQ,CACN,KAAM,EAAe,iBAAiB,CACtC,QAAS,GACT,WAAY,GACb,CACF,CACF,CAAC,CAEW,EAAyB,EAAY,CAChD,KAAM,CACJ,KAAM,2BACN,QAAS,EACT,YAAa,0DACb,KAAM,8EACN,QACE,2HACF,OAAQ,CAAC,mBAAmB,CAC5B,KAAM,CAAC,eAAgB,SAAU,WAAW,CAC5C,UAAW,eACZ,CACD,GAAI,CACF,MAAO,EACP,OAAQ,EACT,CACD,OAAQ,CACN,KAAM,OACP,CACF,CAAC,CAEW,EAA6B,EAAc,CACtD,KAAM,CACJ,KAAM,+BACN,QAAS,EACT,YAAa,gFACb,KAAM,0EACN,QACE,wFACF,OAAQ,CAAC,mBAAmB,CAC5B,KAAM,CAAC,eAAgB,SAAU,WAAW,CAC5C,UAAW,eACZ,CACD,GAAI,CACF,MAAO,EACP,OAAQ,EACT,CACD,OAAQ,CACN,KAAM,QACP,CACD,UAAW,CACT,QAAS,CACP,MAAO,CAAE,KAAM,EAA6B,kBAAmB,CAC/D,YAAa,CAAE,QAAO,YAAa,CACjC,IAAM,EAAU,EAIV,EAAS,EAIf,MAAO,CACL,SAAU,GAAS,SACnB,UAAW,GAAS,UACpB,YAAa,GAAQ,YACrB,aAAc,MAAM,QAAQ,GAAQ,SAAS,CACzC,GAAQ,SAAS,OACjB,IAAA,GACL,EAEJ,CACD,QAAS,CACP,MAAO,CAAE,KAAM,EAA6B,sBAAuB,CACnE,YAAa,CAAE,QAAO,WAAY,CAChC,IAAM,EAAU,EAIhB,MAAO,CACL,SAAU,GAAS,SACnB,UAAW,GAAS,UACpB,MAAO,aAAiB,MAAQ,EAAM,QAAU,OAAO,GAAS,UAAU,CAC3E,EAEJ,CACF,CACF,CAAC,CAEWA,EACX,CACE,yBACA,6BACD,CAEH,SAAgB,EACd,EACc,CACd,OAAO,EACJ,SAAS,EAAuB,CAChC,SAAS,EAA2B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../src/integrations/openbanking/contracts/index.ts"],"sourcesContent":["import type { SpecRegistry } from '../../../registry';\nimport {\n registerOpenBankingAccountContracts,\n OpenBankingGetAccount,\n OpenBankingListAccounts,\n OpenBankingSyncAccounts,\n} from './accounts';\nimport {\n registerOpenBankingTransactionContracts,\n OpenBankingListTransactions,\n OpenBankingSyncTransactions,\n} from './transactions';\nimport {\n registerOpenBankingBalanceContracts,\n OpenBankingGetBalances,\n OpenBankingRefreshBalances,\n} from './balances';\n\nexport {\n OpenBankingGetAccount,\n OpenBankingListAccounts,\n OpenBankingSyncAccounts,\n OpenBankingListTransactions,\n OpenBankingSyncTransactions,\n OpenBankingGetBalances,\n OpenBankingRefreshBalances,\n};\n\nexport function registerOpenBankingContracts(\n registry: SpecRegistry\n): SpecRegistry {\n return registerOpenBankingBalanceContracts(\n registerOpenBankingTransactionContracts(\n registerOpenBankingAccountContracts(registry)\n )\n );\n}\n\n\n"],"mappings":"uaA4BA,SAAgB,EACd,EACc,CACd,OAAO,EACL,EACE,EAAoC,EAAS,CAC9C,CACF"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../src/integrations/openbanking/contracts/index.ts"],"sourcesContent":["import type { SpecRegistry } from '../../../registry';\nimport {\n registerOpenBankingAccountContracts,\n OpenBankingGetAccount,\n OpenBankingListAccounts,\n OpenBankingSyncAccounts,\n} from './accounts';\nimport {\n registerOpenBankingTransactionContracts,\n OpenBankingListTransactions,\n OpenBankingSyncTransactions,\n} from './transactions';\nimport {\n registerOpenBankingBalanceContracts,\n OpenBankingGetBalances,\n OpenBankingRefreshBalances,\n} from './balances';\n\nexport {\n OpenBankingGetAccount,\n OpenBankingListAccounts,\n OpenBankingSyncAccounts,\n OpenBankingListTransactions,\n OpenBankingSyncTransactions,\n OpenBankingGetBalances,\n OpenBankingRefreshBalances,\n};\n\nexport function registerOpenBankingContracts(\n registry: SpecRegistry\n): SpecRegistry {\n return registerOpenBankingBalanceContracts(\n registerOpenBankingTransactionContracts(\n registerOpenBankingAccountContracts(registry)\n )\n );\n}\n\n\n\n\n"],"mappings":"uaA4BA,SAAgB,EACd,EACc,CACd,OAAO,EACL,EACE,EAAoC,EAAS,CAC9C,CACF"}
|
|
@@ -1,139 +1,137 @@
|
|
|
1
1
|
import { ContractSpec } from "../../../spec.js";
|
|
2
2
|
import { SpecRegistry } from "../../../registry.js";
|
|
3
|
-
import * as _lssm_lib_schema398 from "@lssm/lib.schema";
|
|
4
|
-
import { SchemaModel } from "@lssm/lib.schema";
|
|
5
3
|
|
|
6
4
|
//#region src/integrations/openbanking/contracts/transactions.d.ts
|
|
7
5
|
declare const OpenBankingListTransactions: ContractSpec<SchemaModel<{
|
|
8
6
|
tenantId: {
|
|
9
|
-
type:
|
|
7
|
+
type: void 0<string, string>;
|
|
10
8
|
isOptional: false;
|
|
11
9
|
};
|
|
12
10
|
accountId: {
|
|
13
|
-
type:
|
|
11
|
+
type: void 0<string, string>;
|
|
14
12
|
isOptional: false;
|
|
15
13
|
};
|
|
16
14
|
from: {
|
|
17
|
-
type:
|
|
15
|
+
type: void 0<Date, string>;
|
|
18
16
|
isOptional: true;
|
|
19
17
|
};
|
|
20
18
|
to: {
|
|
21
|
-
type:
|
|
19
|
+
type: void 0<Date, string>;
|
|
22
20
|
isOptional: true;
|
|
23
21
|
};
|
|
24
22
|
cursor: {
|
|
25
|
-
type:
|
|
23
|
+
type: void 0<string, string>;
|
|
26
24
|
isOptional: true;
|
|
27
25
|
};
|
|
28
26
|
pageSize: {
|
|
29
|
-
type:
|
|
27
|
+
type: void 0<number, number>;
|
|
30
28
|
isOptional: true;
|
|
31
29
|
};
|
|
32
30
|
direction: {
|
|
33
|
-
type:
|
|
31
|
+
type: void 0<string, string>;
|
|
34
32
|
isOptional: true;
|
|
35
33
|
};
|
|
36
34
|
minimumAmount: {
|
|
37
|
-
type:
|
|
35
|
+
type: void 0<number, number>;
|
|
38
36
|
isOptional: true;
|
|
39
37
|
};
|
|
40
38
|
maximumAmount: {
|
|
41
|
-
type:
|
|
39
|
+
type: void 0<number, number>;
|
|
42
40
|
isOptional: true;
|
|
43
41
|
};
|
|
44
42
|
category: {
|
|
45
|
-
type:
|
|
43
|
+
type: void 0<string, string>;
|
|
46
44
|
isOptional: true;
|
|
47
45
|
};
|
|
48
46
|
}>, SchemaModel<{
|
|
49
47
|
transactions: {
|
|
50
48
|
type: SchemaModel<{
|
|
51
49
|
id: {
|
|
52
|
-
type:
|
|
50
|
+
type: void 0<string, string>;
|
|
53
51
|
isOptional: false;
|
|
54
52
|
};
|
|
55
53
|
accountId: {
|
|
56
|
-
type:
|
|
54
|
+
type: void 0<string, string>;
|
|
57
55
|
isOptional: false;
|
|
58
56
|
};
|
|
59
57
|
tenantId: {
|
|
60
|
-
type:
|
|
58
|
+
type: void 0<string, string>;
|
|
61
59
|
isOptional: false;
|
|
62
60
|
};
|
|
63
61
|
connectionId: {
|
|
64
|
-
type:
|
|
62
|
+
type: void 0<string, string>;
|
|
65
63
|
isOptional: false;
|
|
66
64
|
};
|
|
67
65
|
externalId: {
|
|
68
|
-
type:
|
|
66
|
+
type: void 0<string, string>;
|
|
69
67
|
isOptional: false;
|
|
70
68
|
};
|
|
71
69
|
amount: {
|
|
72
|
-
type:
|
|
70
|
+
type: void 0<number, number>;
|
|
73
71
|
isOptional: false;
|
|
74
72
|
};
|
|
75
73
|
currency: {
|
|
76
|
-
type:
|
|
74
|
+
type: void 0<string, string>;
|
|
77
75
|
isOptional: false;
|
|
78
76
|
};
|
|
79
77
|
date: {
|
|
80
|
-
type:
|
|
78
|
+
type: void 0<Date, string>;
|
|
81
79
|
isOptional: false;
|
|
82
80
|
};
|
|
83
81
|
bookingDate: {
|
|
84
|
-
type:
|
|
82
|
+
type: void 0<Date, string>;
|
|
85
83
|
isOptional: true;
|
|
86
84
|
};
|
|
87
85
|
valueDate: {
|
|
88
|
-
type:
|
|
86
|
+
type: void 0<Date, string>;
|
|
89
87
|
isOptional: true;
|
|
90
88
|
};
|
|
91
89
|
description: {
|
|
92
|
-
type:
|
|
90
|
+
type: void 0<string, string>;
|
|
93
91
|
isOptional: true;
|
|
94
92
|
};
|
|
95
93
|
counterpartyName: {
|
|
96
|
-
type:
|
|
94
|
+
type: void 0<string, string>;
|
|
97
95
|
isOptional: true;
|
|
98
96
|
};
|
|
99
97
|
counterpartyAccount: {
|
|
100
|
-
type:
|
|
98
|
+
type: void 0<string, string>;
|
|
101
99
|
isOptional: true;
|
|
102
100
|
};
|
|
103
101
|
merchantCategoryCode: {
|
|
104
|
-
type:
|
|
102
|
+
type: void 0<string, string>;
|
|
105
103
|
isOptional: true;
|
|
106
104
|
};
|
|
107
105
|
rawCategory: {
|
|
108
|
-
type:
|
|
106
|
+
type: void 0<string, string>;
|
|
109
107
|
isOptional: true;
|
|
110
108
|
};
|
|
111
109
|
standardizedCategory: {
|
|
112
|
-
type:
|
|
110
|
+
type: void 0<string, string>;
|
|
113
111
|
isOptional: true;
|
|
114
112
|
};
|
|
115
113
|
transactionType: {
|
|
116
|
-
type:
|
|
114
|
+
type: void 0<string, string>;
|
|
117
115
|
isOptional: false;
|
|
118
116
|
};
|
|
119
117
|
status: {
|
|
120
|
-
type:
|
|
118
|
+
type: void 0<string, string>;
|
|
121
119
|
isOptional: false;
|
|
122
120
|
};
|
|
123
121
|
runningBalance: {
|
|
124
|
-
type:
|
|
122
|
+
type: void 0<number, number>;
|
|
125
123
|
isOptional: true;
|
|
126
124
|
};
|
|
127
125
|
metadata: {
|
|
128
|
-
type:
|
|
126
|
+
type: void 0<Record<string, unknown>, Record<string, unknown>>;
|
|
129
127
|
isOptional: true;
|
|
130
128
|
};
|
|
131
129
|
createdAt: {
|
|
132
|
-
type:
|
|
130
|
+
type: void 0<Date, string>;
|
|
133
131
|
isOptional: false;
|
|
134
132
|
};
|
|
135
133
|
updatedAt: {
|
|
136
|
-
type:
|
|
134
|
+
type: void 0<Date, string>;
|
|
137
135
|
isOptional: false;
|
|
138
136
|
};
|
|
139
137
|
}>;
|
|
@@ -141,66 +139,66 @@ declare const OpenBankingListTransactions: ContractSpec<SchemaModel<{
|
|
|
141
139
|
isArray: true;
|
|
142
140
|
};
|
|
143
141
|
nextCursor: {
|
|
144
|
-
type:
|
|
142
|
+
type: void 0<string, string>;
|
|
145
143
|
isOptional: true;
|
|
146
144
|
};
|
|
147
145
|
hasMore: {
|
|
148
|
-
type:
|
|
146
|
+
type: void 0<boolean, boolean>;
|
|
149
147
|
isOptional: true;
|
|
150
148
|
};
|
|
151
149
|
}>, undefined>;
|
|
152
150
|
declare const OpenBankingSyncTransactions: ContractSpec<SchemaModel<{
|
|
153
151
|
tenantId: {
|
|
154
|
-
type:
|
|
152
|
+
type: void 0<string, string>;
|
|
155
153
|
isOptional: false;
|
|
156
154
|
};
|
|
157
155
|
accountId: {
|
|
158
|
-
type:
|
|
156
|
+
type: void 0<string, string>;
|
|
159
157
|
isOptional: false;
|
|
160
158
|
};
|
|
161
159
|
from: {
|
|
162
|
-
type:
|
|
160
|
+
type: void 0<Date, string>;
|
|
163
161
|
isOptional: true;
|
|
164
162
|
};
|
|
165
163
|
to: {
|
|
166
|
-
type:
|
|
164
|
+
type: void 0<Date, string>;
|
|
167
165
|
isOptional: true;
|
|
168
166
|
};
|
|
169
167
|
connectionId: {
|
|
170
|
-
type:
|
|
168
|
+
type: void 0<string, string>;
|
|
171
169
|
isOptional: true;
|
|
172
170
|
};
|
|
173
171
|
includePending: {
|
|
174
|
-
type:
|
|
172
|
+
type: void 0<boolean, boolean>;
|
|
175
173
|
isOptional: true;
|
|
176
174
|
};
|
|
177
175
|
backfillDays: {
|
|
178
|
-
type:
|
|
176
|
+
type: void 0<number, number>;
|
|
179
177
|
isOptional: true;
|
|
180
178
|
};
|
|
181
179
|
}>, SchemaModel<{
|
|
182
180
|
synced: {
|
|
183
|
-
type:
|
|
181
|
+
type: void 0<number, number>;
|
|
184
182
|
isOptional: false;
|
|
185
183
|
};
|
|
186
184
|
failed: {
|
|
187
|
-
type:
|
|
185
|
+
type: void 0<number, number>;
|
|
188
186
|
isOptional: false;
|
|
189
187
|
};
|
|
190
188
|
earliestSyncedAt: {
|
|
191
|
-
type:
|
|
189
|
+
type: void 0<Date, string>;
|
|
192
190
|
isOptional: true;
|
|
193
191
|
};
|
|
194
192
|
latestSyncedAt: {
|
|
195
|
-
type:
|
|
193
|
+
type: void 0<Date, string>;
|
|
196
194
|
isOptional: true;
|
|
197
195
|
};
|
|
198
196
|
nextSinceToken: {
|
|
199
|
-
type:
|
|
197
|
+
type: void 0<string, string>;
|
|
200
198
|
isOptional: true;
|
|
201
199
|
};
|
|
202
200
|
errors: {
|
|
203
|
-
type:
|
|
201
|
+
type: void 0<string, string>;
|
|
204
202
|
isArray: true;
|
|
205
203
|
isOptional: true;
|
|
206
204
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactions.d.ts","names":[],"sources":["../../../../src/integrations/openbanking/contracts/transactions.ts"],"sourcesContent":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transactions.d.ts","names":[],"sources":["../../../../src/integrations/openbanking/contracts/transactions.ts"],"sourcesContent":[],"mappings":";;;;cA4Ea,6BAA2B,aAAA;EAA3B,QAAA,EAAA;IAmBX,IAAA,EAAA,KAAA,CAAA,CAAA,MAAA,EAAA,MAAA,CAAA;;;;;;;;;;;;IAnBsC,IAAA,QAAA,KAAA,EAAA,MAAA,CAAA;IAAA,UAAA,EAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAAA,KAAA;;;MAAA,SAAA,EAAA;QAAA,IAAA,QAAA,CAAA,MAAA,EAAA,MAAA,CAAA;QAqB3B,UAAA,EAAA,KAAA;MA2DX,CAAA;;;;;;;;;MA3DsC,UAAA,EAAA;QAAA,IAAA,QAAA,CAAA,MAAA,EAAA,MAAA,CAAA;;;;;;;;;QAAA,UAAA,EAAA,KAAA;MAAA,CAAA;MA6D3B,IAAA,EAAA;QAQG,IAAA,QAAuC,KAC3C,EAAA,MAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAtEC,6BAA2B,aAAA;;UA2DtC,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UA3DsC,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;cA6D3B,iCAAiC,eAE5C;iBAMc,uCAAA,WACJ,eACT"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{ScalarTypeEnum as e}from"../../../schema/src/ScalarTypeEnum.js";import{SchemaModel as t}from"../../../schema/src/SchemaModel.js";import"../../../schema/src/index.js";import{defineCommand as n,defineQuery as r}from"../../../spec.js";import{BankTransactionRecord as i}from"../models.js";import{OPENBANKING_TELEMETRY_EVENTS as a}from"../telemetry.js";const o=new t({name:`OpenBankingListTransactionsInput`,description:`Parameters for listing bank transactions from the canonical ledger.`,fields:{tenantId:{type:e.ID(),isOptional:!1},accountId:{type:e.ID(),isOptional:!1},from:{type:e.DateTime(),isOptional:!0},to:{type:e.DateTime(),isOptional:!0},cursor:{type:e.String_unsecure(),isOptional:!0},pageSize:{type:e.Int_unsecure(),isOptional:!0},direction:{type:e.String_unsecure(),isOptional:!0},minimumAmount:{type:e.Float_unsecure(),isOptional:!0},maximumAmount:{type:e.Float_unsecure(),isOptional:!0},category:{type:e.String_unsecure(),isOptional:!0}}}),s=new t({name:`OpenBankingListTransactionsOutput`,description:`Paginated list of transactions for a bank account.`,fields:{transactions:{type:i,isOptional:!1,isArray:!0},nextCursor:{type:e.String_unsecure(),isOptional:!0},hasMore:{type:e.Boolean(),isOptional:!0}}}),c=new t({name:`OpenBankingSyncTransactionsInput`,description:`Command payload to synchronise transactions from the open banking provider into the canonical ledger.`,fields:{tenantId:{type:e.ID(),isOptional:!1},accountId:{type:e.ID(),isOptional:!1},from:{type:e.DateTime(),isOptional:!0},to:{type:e.DateTime(),isOptional:!0},connectionId:{type:e.ID(),isOptional:!0},includePending:{type:e.Boolean(),isOptional:!0},backfillDays:{type:e.Int_unsecure(),isOptional:!0}}}),l=new t({name:`OpenBankingSyncTransactionsOutput`,description:`Result of a transaction synchronisation run.`,fields:{synced:{type:e.Int_unsecure(),isOptional:!1},failed:{type:e.Int_unsecure(),isOptional:!1},earliestSyncedAt:{type:e.DateTime(),isOptional:!0},latestSyncedAt:{type:e.DateTime(),isOptional:!0},nextSinceToken:{type:e.String_unsecure(),isOptional:!0},errors:{type:e.String_unsecure(),isArray:!0,isOptional:!0}}}),u=r({meta:{name:`openbanking.transactions.list`,version:1,description:`List bank transactions that have been normalised into the canonical ledger.`,goal:`Allow downstream analytics and UI surfaces to page through canonical bank transactions.`,context:`Used by Pocket Family Office dashboards, reconciliation workflows, and analytics data views.`,owners:[`platform.finance`],tags:[`open-banking`,`powens`,`transactions`],stability:`experimental`},io:{input:o,output:s},policy:{auth:`user`}}),d=n({meta:{name:`openbanking.transactions.sync`,version:1,description:`Synchronise transactions for a bank account by calling the configured open banking provider.`,goal:`Ensure the canonical transaction ledger stays aligned with the external provider.`,context:`Triggered by scheduled workflows or on-demand actions when activity is expected on an account.`,owners:[`platform.finance`],tags:[`open-banking`,`powens`,`transactions`],stability:`experimental`},io:{input:c,output:l},policy:{auth:`admin`},telemetry:{success:{event:{name:a.transactionsSynced},properties:({input:e,output:t})=>{let n=e,r=t;return{tenantId:n?.tenantId,accountId:n?.accountId,synced:r?.synced,failed:r?.failed,earliestSyncedAt:r?.earliestSyncedAt,latestSyncedAt:r?.latestSyncedAt}}},failure:{event:{name:a.transactionsSyncFailed},properties:({input:e,error:t})=>{let n=e;return{tenantId:n?.tenantId,accountId:n?.accountId,error:t instanceof Error?t.message:String(t??`unknown`)}}}}}),f={OpenBankingListTransactions:u,OpenBankingSyncTransactions:d};function p(e){return e.register(u).register(d)}export{u as OpenBankingListTransactions,d as OpenBankingSyncTransactions,f as openBankingTransactionContracts,p as registerOpenBankingTransactionContracts};
|
|
2
2
|
//# sourceMappingURL=transactions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactions.js","names":["
|
|
1
|
+
{"version":3,"file":"transactions.js","names":["openBankingTransactionContracts: Record<\n string,\n ContractSpec<any, any>\n>"],"sources":["../../../../src/integrations/openbanking/contracts/transactions.ts"],"sourcesContent":["import {\n ScalarTypeEnum,\n SchemaModel,\n} from '@lssm/lib.schema';\nimport {\n defineCommand,\n defineQuery,\n type ContractSpec,\n} from '../../../spec';\nimport type { SpecRegistry } from '../../../registry';\nimport { BankTransactionRecord } from '../models';\nimport { OPENBANKING_TELEMETRY_EVENTS } from '../telemetry';\n\nconst OpenBankingListTransactionsInput = new SchemaModel({\n name: 'OpenBankingListTransactionsInput',\n description: 'Parameters for listing bank transactions from the canonical ledger.',\n fields: {\n tenantId: { type: ScalarTypeEnum.ID(), isOptional: false },\n accountId: { type: ScalarTypeEnum.ID(), isOptional: false },\n from: { type: ScalarTypeEnum.DateTime(), isOptional: true },\n to: { type: ScalarTypeEnum.DateTime(), isOptional: true },\n cursor: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n pageSize: { type: ScalarTypeEnum.Int_unsecure(), isOptional: true },\n direction: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n minimumAmount: { type: ScalarTypeEnum.Float_unsecure(), isOptional: true },\n maximumAmount: { type: ScalarTypeEnum.Float_unsecure(), isOptional: true },\n category: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n },\n});\n\nconst OpenBankingListTransactionsOutput = new SchemaModel({\n name: 'OpenBankingListTransactionsOutput',\n description: 'Paginated list of transactions for a bank account.',\n fields: {\n transactions: {\n type: BankTransactionRecord,\n isOptional: false,\n isArray: true,\n },\n nextCursor: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n hasMore: { type: ScalarTypeEnum.Boolean(), isOptional: true },\n },\n});\n\nconst OpenBankingSyncTransactionsInput = new SchemaModel({\n name: 'OpenBankingSyncTransactionsInput',\n description:\n 'Command payload to synchronise transactions from the open banking provider into the canonical ledger.',\n fields: {\n tenantId: { type: ScalarTypeEnum.ID(), isOptional: false },\n accountId: { type: ScalarTypeEnum.ID(), isOptional: false },\n from: { type: ScalarTypeEnum.DateTime(), isOptional: true },\n to: { type: ScalarTypeEnum.DateTime(), isOptional: true },\n connectionId: { type: ScalarTypeEnum.ID(), isOptional: true },\n includePending: { type: ScalarTypeEnum.Boolean(), isOptional: true },\n backfillDays: { type: ScalarTypeEnum.Int_unsecure(), isOptional: true },\n },\n});\n\nconst OpenBankingSyncTransactionsOutput = new SchemaModel({\n name: 'OpenBankingSyncTransactionsOutput',\n description: 'Result of a transaction synchronisation run.',\n fields: {\n synced: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },\n failed: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },\n earliestSyncedAt: { type: ScalarTypeEnum.DateTime(), isOptional: true },\n latestSyncedAt: { type: ScalarTypeEnum.DateTime(), isOptional: true },\n nextSinceToken: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n errors: {\n type: ScalarTypeEnum.String_unsecure(),\n isArray: true,\n isOptional: true,\n },\n },\n});\n\nexport const OpenBankingListTransactions = defineQuery({\n meta: {\n name: 'openbanking.transactions.list',\n version: 1,\n description: 'List bank transactions that have been normalised into the canonical ledger.',\n goal: 'Allow downstream analytics and UI surfaces to page through canonical bank transactions.',\n context:\n 'Used by Pocket Family Office dashboards, reconciliation workflows, and analytics data views.',\n owners: ['platform.finance'],\n tags: ['open-banking', 'powens', 'transactions'],\n stability: 'experimental',\n },\n io: {\n input: OpenBankingListTransactionsInput,\n output: OpenBankingListTransactionsOutput,\n },\n policy: {\n auth: 'user',\n },\n});\n\nexport const OpenBankingSyncTransactions = defineCommand({\n meta: {\n name: 'openbanking.transactions.sync',\n version: 1,\n description:\n 'Synchronise transactions for a bank account by calling the configured open banking provider.',\n goal: 'Ensure the canonical transaction ledger stays aligned with the external provider.',\n context:\n 'Triggered by scheduled workflows or on-demand actions when activity is expected on an account.',\n owners: ['platform.finance'],\n tags: ['open-banking', 'powens', 'transactions'],\n stability: 'experimental',\n },\n io: {\n input: OpenBankingSyncTransactionsInput,\n output: OpenBankingSyncTransactionsOutput,\n },\n policy: {\n auth: 'admin',\n },\n telemetry: {\n success: {\n event: { name: OPENBANKING_TELEMETRY_EVENTS.transactionsSynced },\n properties: ({ input, output }) => {\n const payload = input as {\n tenantId?: string;\n accountId?: string;\n };\n const result = output as {\n synced?: number;\n failed?: number;\n earliestSyncedAt?: string;\n latestSyncedAt?: string;\n } | null;\n return {\n tenantId: payload?.tenantId,\n accountId: payload?.accountId,\n synced: result?.synced,\n failed: result?.failed,\n earliestSyncedAt: result?.earliestSyncedAt,\n latestSyncedAt: result?.latestSyncedAt,\n };\n },\n },\n failure: {\n event: { name: OPENBANKING_TELEMETRY_EVENTS.transactionsSyncFailed },\n properties: ({ input, error }) => {\n const payload = input as {\n tenantId?: string;\n accountId?: string;\n };\n return {\n tenantId: payload?.tenantId,\n accountId: payload?.accountId,\n error: error instanceof Error ? error.message : String(error ?? 'unknown'),\n };\n },\n },\n },\n});\n\nexport const openBankingTransactionContracts: Record<\n string,\n ContractSpec<any, any>\n> = {\n OpenBankingListTransactions,\n OpenBankingSyncTransactions,\n};\n\nexport function registerOpenBankingTransactionContracts(\n registry: SpecRegistry\n): SpecRegistry {\n return registry\n .register(OpenBankingListTransactions)\n .register(OpenBankingSyncTransactions);\n}\n\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guards.js","names":[],"sources":["../../../src/integrations/openbanking/guards.ts"],"sourcesContent":["import type {\n ResolvedAppConfig,\n ResolvedIntegration,\n} from '../../app-config/runtime';\n\nconst PRIMARY_SLOT_ID = 'primaryOpenBanking';\n\nexport interface OpenBankingGuardResult {\n ok: boolean;\n integration?: ResolvedIntegration;\n error?: string;\n}\n\nexport function ensurePrimaryOpenBankingIntegration(\n config: ResolvedAppConfig\n): OpenBankingGuardResult {\n const integration = config.integrations.find(\n (item) => item.slot.slotId === PRIMARY_SLOT_ID\n );\n\n if (!integration) {\n return {\n ok: false,\n error: 'primaryOpenBanking slot is not bound in the resolved app config.',\n };\n }\n\n const status = integration.connection.status;\n if (status === 'error' || status === 'disconnected') {\n return {\n ok: false,\n integration,\n error: `primaryOpenBanking connection is in status \"${status}\".`,\n };\n }\n\n if (status === 'unknown') {\n return {\n ok: false,\n integration,\n error: 'primaryOpenBanking connection health is unknown.',\n };\n }\n\n return { ok: true, integration };\n}\n\nexport function assertPrimaryOpenBankingReady(\n config: ResolvedAppConfig\n): ResolvedIntegration {\n const result = ensurePrimaryOpenBankingIntegration(config);\n if (!result.ok) {\n throw new Error(result.error ?? 'Open banking integration not available.');\n }\n return result.integration!;\n}\n\n\n"],"mappings":"AAaA,SAAgB,EACd,EACwB,CACxB,IAAM,EAAc,EAAO,aAAa,KACrC,GAAS,EAAK,KAAK,SAAW,qBAChC,CAED,GAAI,CAAC,EACH,MAAO,CACL,GAAI,GACJ,MAAO,mEACR,CAGH,IAAM,EAAS,EAAY,WAAW,OAiBtC,OAhBI,IAAW,SAAW,IAAW,eAC5B,CACL,GAAI,GACJ,cACA,MAAO,+CAA+C,EAAO,IAC9D,CAGC,IAAW,UACN,CACL,GAAI,GACJ,cACA,MAAO,mDACR,CAGI,CAAE,GAAI,GAAM,cAAa,CAGlC,SAAgB,EACd,EACqB,CACrB,IAAM,EAAS,EAAoC,EAAO,CAC1D,GAAI,CAAC,EAAO,GACV,MAAU,MAAM,EAAO,OAAS,0CAA0C,CAE5E,OAAO,EAAO"}
|
|
1
|
+
{"version":3,"file":"guards.js","names":[],"sources":["../../../src/integrations/openbanking/guards.ts"],"sourcesContent":["import type {\n ResolvedAppConfig,\n ResolvedIntegration,\n} from '../../app-config/runtime';\n\nconst PRIMARY_SLOT_ID = 'primaryOpenBanking';\n\nexport interface OpenBankingGuardResult {\n ok: boolean;\n integration?: ResolvedIntegration;\n error?: string;\n}\n\nexport function ensurePrimaryOpenBankingIntegration(\n config: ResolvedAppConfig\n): OpenBankingGuardResult {\n const integration = config.integrations.find(\n (item) => item.slot.slotId === PRIMARY_SLOT_ID\n );\n\n if (!integration) {\n return {\n ok: false,\n error: 'primaryOpenBanking slot is not bound in the resolved app config.',\n };\n }\n\n const status = integration.connection.status;\n if (status === 'error' || status === 'disconnected') {\n return {\n ok: false,\n integration,\n error: `primaryOpenBanking connection is in status \"${status}\".`,\n };\n }\n\n if (status === 'unknown') {\n return {\n ok: false,\n integration,\n error: 'primaryOpenBanking connection health is unknown.',\n };\n }\n\n return { ok: true, integration };\n}\n\nexport function assertPrimaryOpenBankingReady(\n config: ResolvedAppConfig\n): ResolvedIntegration {\n const result = ensurePrimaryOpenBankingIntegration(config);\n if (!result.ok) {\n throw new Error(result.error ?? 'Open banking integration not available.');\n }\n return result.integration!;\n}\n\n\n\n\n"],"mappings":"AAaA,SAAgB,EACd,EACwB,CACxB,IAAM,EAAc,EAAO,aAAa,KACrC,GAAS,EAAK,KAAK,SAAW,qBAChC,CAED,GAAI,CAAC,EACH,MAAO,CACL,GAAI,GACJ,MAAO,mEACR,CAGH,IAAM,EAAS,EAAY,WAAW,OAiBtC,OAhBI,IAAW,SAAW,IAAW,eAC5B,CACL,GAAI,GACJ,cACA,MAAO,+CAA+C,EAAO,IAC9D,CAGC,IAAW,UACN,CACL,GAAI,GACJ,cACA,MAAO,mDACR,CAGI,CAAE,GAAI,GAAM,cAAa,CAGlC,SAAgB,EACd,EACqB,CACrB,IAAM,EAAS,EAAoC,EAAO,CAC1D,GAAI,CAAC,EAAO,GACV,MAAU,MAAM,EAAO,OAAS,0CAA0C,CAE5E,OAAO,EAAO"}
|