@dalmore/api-contracts 1.0.2 → 1.0.5
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/README.md +34 -55
- package/index.d.mts +17 -0
- package/index.d.ts +17 -0
- package/index.mjs +10970 -0
- package/package.json +10 -46
- package/common/helpers/index.ts +0 -205
- package/common/types/account-contact.types.ts +0 -98
- package/common/types/account-detail.types.ts +0 -27
- package/common/types/account-integration.types.ts +0 -143
- package/common/types/account-manager.types.ts +0 -124
- package/common/types/account.types.ts +0 -296
- package/common/types/activity.types.ts +0 -274
- package/common/types/address.types.ts +0 -41
- package/common/types/aic.types.ts +0 -246
- package/common/types/aml.types.ts +0 -18
- package/common/types/api-key-logs.types.ts +0 -66
- package/common/types/api-keys.types.ts +0 -69
- package/common/types/asset.types.ts +0 -338
- package/common/types/auth.types.ts +0 -370
- package/common/types/batch-jobs.types.ts +0 -150
- package/common/types/bonus-tier.types.ts +0 -147
- package/common/types/cart.types.ts +0 -18
- package/common/types/checklist-items.types.ts +0 -70
- package/common/types/checklist.types.ts +0 -97
- package/common/types/common.types.ts +0 -1520
- package/common/types/comply-advantage-api.types.ts +0 -316
- package/common/types/comply-advantage.types.ts +0 -25
- package/common/types/contact-us.types.ts +0 -107
- package/common/types/contract-helpers.ts +0 -205
- package/common/types/countries.types.ts +0 -375
- package/common/types/covered-person.types.ts +0 -274
- package/common/types/dashboard.types.ts +0 -799
- package/common/types/data-record.types.ts +0 -325
- package/common/types/data-room.types.ts +0 -242
- package/common/types/default-theme-config.types.ts +0 -87
- package/common/types/disbursement-adjustment.types.ts +0 -32
- package/common/types/disbursement-approval-user.types.ts +0 -100
- package/common/types/disbursement-review.types.ts +0 -110
- package/common/types/disbursement-transaction.types.ts +0 -72
- package/common/types/disbursements.types.ts +0 -310
- package/common/types/domain-filter.types.ts +0 -55
- package/common/types/email-theme.types.ts +0 -442
- package/common/types/entity.types.ts +0 -15
- package/common/types/error-responses.types.ts +0 -135
- package/common/types/escrow-account.types.ts +0 -104
- package/common/types/exchange-api-key.types.ts +0 -121
- package/common/types/exchange-import.types.ts +0 -36
- package/common/types/exchange-provider.types.ts +0 -329
- package/common/types/file.types.ts +0 -461
- package/common/types/health.types.ts +0 -29
- package/common/types/index.ts +0 -48
- package/common/types/individuals.types.ts +0 -554
- package/common/types/investor-account.types.ts +0 -1239
- package/common/types/investorAccountIdSchema.type.ts +0 -0
- package/common/types/investors-offering.types.ts +0 -65
- package/common/types/invite.types.ts +0 -133
- package/common/types/issuer-bank-account.types.ts +0 -107
- package/common/types/issuer-offering.types.ts +0 -306
- package/common/types/issuer-payment-method.types.ts +0 -341
- package/common/types/issuer.types.ts +0 -312
- package/common/types/job-item.types.ts +0 -119
- package/common/types/jobs.types.ts +0 -171
- package/common/types/kyb.types.ts +0 -53
- package/common/types/kyc.types.ts +0 -188
- package/common/types/legal-entity.types.ts +0 -185
- package/common/types/login-history.types.ts +0 -46
- package/common/types/mail-template.types.ts +0 -436
- package/common/types/north-cap-integration.types.ts +0 -190
- package/common/types/note.types.ts +0 -109
- package/common/types/notification.types.ts +0 -58
- package/common/types/notion-api.types.ts +0 -374
- package/common/types/notion-database.types.ts +0 -125
- package/common/types/notion-page.types.ts +0 -267
- package/common/types/offering-reports.types.ts +0 -153
- package/common/types/offering-submission.types.ts +0 -314
- package/common/types/offering.types.ts +0 -590
- package/common/types/page-revision.types.ts +0 -86
- package/common/types/page.types.ts +0 -436
- package/common/types/password.type.ts +0 -15
- package/common/types/payment-methods.types.ts +0 -298
- package/common/types/phone.type.ts +0 -27
- package/common/types/portfolio.types.ts +0 -50
- package/common/types/privacy-policy-and-tos.types.ts +0 -231
- package/common/types/queue.types.ts +0 -111
- package/common/types/registered-reps.types.ts +0 -25
- package/common/types/rejection-reasons.types.ts +0 -56
- package/common/types/review.types.ts +0 -133
- package/common/types/role.types.ts +0 -26
- package/common/types/secondary-customer.types.ts +0 -66
- package/common/types/secondary-issuer.types.ts +0 -50
- package/common/types/secondary-order.types.ts +0 -58
- package/common/types/secondary-security.types.ts +0 -60
- package/common/types/secondary-trade.entity.ts +0 -16
- package/common/types/secondary-trade.types.ts +0 -95
- package/common/types/secure-request.types.ts +0 -68
- package/common/types/signer.types.ts +0 -651
- package/common/types/site-link.types.ts +0 -166
- package/common/types/site-settings.types.ts +0 -726
- package/common/types/site.types.ts +0 -270
- package/common/types/sms.types.ts +0 -30
- package/common/types/state-machine.types.ts +0 -177
- package/common/types/states.types.ts +0 -163
- package/common/types/subdoc-preview.types.ts +0 -35
- package/common/types/task.types.ts +0 -258
- package/common/types/trade-adjustment.type.ts +0 -33
- package/common/types/trade-line-item.type.ts +0 -132
- package/common/types/trade.types.ts +0 -931
- package/common/types/transaction.types.ts +0 -198
- package/common/types/trusted-contact.types.ts +0 -122
- package/common/types/typography.types.ts +0 -75
- package/common/types/user-manual.types.ts +0 -290
- package/common/types/user-setting.types.ts +0 -133
- package/common/types/user.types.ts +0 -320
- package/common/types/webhook.types.ts +0 -588
- package/common/types/zip.type.ts +0 -36
- package/contracts/clients/accounts/index.ts +0 -61
- package/contracts/clients/aic/index.ts +0 -59
- package/contracts/clients/api-key-logs/index.ts +0 -53
- package/contracts/clients/api-keys/index.ts +0 -73
- package/contracts/clients/assets/index.ts +0 -102
- package/contracts/clients/auth/index.ts +0 -50
- package/contracts/clients/files/index.ts +0 -166
- package/contracts/clients/files-public/index.ts +0 -166
- package/contracts/clients/index.ts +0 -44
- package/contracts/clients/individuals/index.ts +0 -93
- package/contracts/clients/investor-accounts/index.ts +0 -93
- package/contracts/clients/issuers/index.ts +0 -94
- package/contracts/clients/legal-entities/index.ts +0 -93
- package/contracts/clients/offerings/index.ts +0 -117
- package/contracts/clients/secure-requests/index.ts +0 -34
- package/contracts/clients/sites/index.ts +0 -56
- package/contracts/clients/trades/index.ts +0 -122
- package/contracts/compliance/account-contacts/index.ts +0 -82
- package/contracts/compliance/account-managers/index.ts +0 -142
- package/contracts/compliance/accounts/index.ts +0 -187
- package/contracts/compliance/activities/index.ts +0 -55
- package/contracts/compliance/aic/index.ts +0 -60
- package/contracts/compliance/api-keys/index.ts +0 -91
- package/contracts/compliance/assets/index.ts +0 -122
- package/contracts/compliance/auth/index.ts +0 -134
- package/contracts/compliance/batch-jobs/index.ts +0 -62
- package/contracts/compliance/bonus-tiers/index.ts +0 -55
- package/contracts/compliance/checklist/index.ts +0 -87
- package/contracts/compliance/checklist-items/index.ts +0 -86
- package/contracts/compliance/covered-persons/index.ts +0 -97
- package/contracts/compliance/dashboard/index.ts +0 -111
- package/contracts/compliance/data-records/index.ts +0 -116
- package/contracts/compliance/data-rooms/index.ts +0 -113
- package/contracts/compliance/default-theme-configs/index.ts +0 -95
- package/contracts/compliance/disbursement/index.ts +0 -165
- package/contracts/compliance/disbursement-approval-users/index.ts +0 -84
- package/contracts/compliance/disbursement-transactions/index.ts +0 -37
- package/contracts/compliance/domain-filters/index.ts +0 -117
- package/contracts/compliance/email-themes/index.ts +0 -284
- package/contracts/compliance/escrow-accounts/index.ts +0 -85
- package/contracts/compliance/exchange-api-keys/index.ts +0 -129
- package/contracts/compliance/exchange-imports/index.ts +0 -137
- package/contracts/compliance/files/index.ts +0 -267
- package/contracts/compliance/files-public/index.ts +0 -188
- package/contracts/compliance/health/index.ts +0 -26
- package/contracts/compliance/index.ts +0 -147
- package/contracts/compliance/individuals/index.ts +0 -57
- package/contracts/compliance/investor-accounts/index.ts +0 -141
- package/contracts/compliance/invites/index.ts +0 -137
- package/contracts/compliance/issuer-bank-accounts/index.ts +0 -81
- package/contracts/compliance/issuer-payment-methods/index.ts +0 -81
- package/contracts/compliance/issuers/index.ts +0 -97
- package/contracts/compliance/job-items/index.ts +0 -58
- package/contracts/compliance/jobs/index.ts +0 -59
- package/contracts/compliance/kyb/index.ts +0 -54
- package/contracts/compliance/kyc/index.ts +0 -77
- package/contracts/compliance/legal-entities/index.ts +0 -57
- package/contracts/compliance/login-histories/index.ts +0 -37
- package/contracts/compliance/notes/index.ts +0 -69
- package/contracts/compliance/notion-databases/index.ts +0 -107
- package/contracts/compliance/notion-pages/index.ts +0 -105
- package/contracts/compliance/offering-reports/index.ts +0 -149
- package/contracts/compliance/offerings/index.ts +0 -233
- package/contracts/compliance/pages/index.ts +0 -178
- package/contracts/compliance/payment-methods/index.ts +0 -57
- package/contracts/compliance/rejection-reasons/index.ts +0 -32
- package/contracts/compliance/review/index.ts +0 -169
- package/contracts/compliance/roles/index.ts +0 -34
- package/contracts/compliance/secondary-customers/index.ts +0 -77
- package/contracts/compliance/secondary-orders/index.ts +0 -60
- package/contracts/compliance/secondary-trades/index.ts +0 -100
- package/contracts/compliance/secure-requests/index.ts +0 -54
- package/contracts/compliance/signer/index.ts +0 -369
- package/contracts/compliance/site-links/index.ts +0 -128
- package/contracts/compliance/site-settings/index.ts +0 -669
- package/contracts/compliance/sites/index.ts +0 -56
- package/contracts/compliance/state-machine/index.ts +0 -94
- package/contracts/compliance/tasks/index.ts +0 -91
- package/contracts/compliance/third-parties/index.ts +0 -52
- package/contracts/compliance/trade-line-items/index.ts +0 -59
- package/contracts/compliance/trades/index.ts +0 -230
- package/contracts/compliance/transactions/index.ts +0 -161
- package/contracts/compliance/user-manuals/index.ts +0 -271
- package/contracts/compliance/user-settings/index.ts +0 -189
- package/contracts/compliance/users/index.ts +0 -200
- package/contracts/compliance/webhooks/index.ts +0 -41
- package/contracts/compliance-apikey/accounts/index.ts +0 -58
- package/contracts/compliance-apikey/index.ts +0 -14
- package/contracts/index.ts +0 -6
- package/contracts/investors/account-contacts/index.ts +0 -58
- package/contracts/investors/aic/index.ts +0 -59
- package/contracts/investors/assets/index.ts +0 -61
- package/contracts/investors/auth/index.ts +0 -116
- package/contracts/investors/bonus-tiers/index.ts +0 -37
- package/contracts/investors/cart/index.ts +0 -75
- package/contracts/investors/contact-us/index.ts +0 -48
- package/contracts/investors/data-records/index.ts +0 -113
- package/contracts/investors/data-rooms/index.ts +0 -96
- package/contracts/investors/files/index.ts +0 -167
- package/contracts/investors/files-public/index.ts +0 -185
- package/contracts/investors/index.ts +0 -72
- package/contracts/investors/individuals/index.ts +0 -99
- package/contracts/investors/investor-accounts/index.ts +0 -110
- package/contracts/investors/issuer-payment-methods/index.ts +0 -36
- package/contracts/investors/issuers/index.ts +0 -30
- package/contracts/investors/legal-entities/index.ts +0 -93
- package/contracts/investors/notes/index.ts +0 -69
- package/contracts/investors/offerings/index.ts +0 -93
- package/contracts/investors/pages/index.ts +0 -88
- package/contracts/investors/payment-methods/index.ts +0 -149
- package/contracts/investors/portfolios/index.ts +0 -53
- package/contracts/investors/sites/index.ts +0 -96
- package/contracts/investors/tasks/index.ts +0 -111
- package/contracts/investors/trade-line-items/index.ts +0 -75
- package/contracts/investors/trades/index.ts +0 -114
- package/contracts/investors/transactions/index.ts +0 -37
- package/contracts/investors/trusted-contacts/index.ts +0 -93
- package/contracts/investors/user-manuals/index.ts +0 -62
- package/contracts/investors/user-settings/index.ts +0 -170
- package/contracts/investors/users/index.ts +0 -45
- package/contracts/investors/webhooks/index.ts +0 -30
- package/contracts/issuers/account-contacts/index.ts +0 -76
- package/contracts/issuers/account-integrations/index.ts +0 -97
- package/contracts/issuers/accounts/index.ts +0 -97
- package/contracts/issuers/activities/index.ts +0 -54
- package/contracts/issuers/aic/index.ts +0 -39
- package/contracts/issuers/api-key-logs/index.ts +0 -53
- package/contracts/issuers/api-keys/index.ts +0 -93
- package/contracts/issuers/assets/index.ts +0 -122
- package/contracts/issuers/auth/index.ts +0 -152
- package/contracts/issuers/bonus-tiers/index.ts +0 -55
- package/contracts/issuers/contact-us/index.ts +0 -48
- package/contracts/issuers/covered-persons/index.ts +0 -136
- package/contracts/issuers/dashboard/index.ts +0 -72
- package/contracts/issuers/data-records/index.ts +0 -257
- package/contracts/issuers/data-rooms/index.ts +0 -134
- package/contracts/issuers/disbursement-approval-users/index.ts +0 -82
- package/contracts/issuers/disbursement-transactions/index.ts +0 -53
- package/contracts/issuers/disbursements/index.ts +0 -153
- package/contracts/issuers/email-themes/index.ts +0 -242
- package/contracts/issuers/escrow-accounts/index.ts +0 -81
- package/contracts/issuers/exchange-api-keys/index.ts +0 -144
- package/contracts/issuers/files/index.ts +0 -166
- package/contracts/issuers/files-public/index.ts +0 -166
- package/contracts/issuers/health/index.ts +0 -24
- package/contracts/issuers/index.ts +0 -112
- package/contracts/issuers/investor-accounts/index.ts +0 -148
- package/contracts/issuers/invites/index.ts +0 -129
- package/contracts/issuers/issuer/index.ts +0 -94
- package/contracts/issuers/issuer-bank-accounts/index.ts +0 -81
- package/contracts/issuers/issuer-payment-methods/index.ts +0 -136
- package/contracts/issuers/kyc/index.ts +0 -38
- package/contracts/issuers/login-histories/index.ts +0 -51
- package/contracts/issuers/notes/index.ts +0 -69
- package/contracts/issuers/offerings/index.ts +0 -206
- package/contracts/issuers/pages/index.ts +0 -138
- package/contracts/issuers/payment-methods/index.ts +0 -61
- package/contracts/issuers/portfolios/index.ts +0 -36
- package/contracts/issuers/rejection-reasons/index.ts +0 -32
- package/contracts/issuers/review/index.ts +0 -63
- package/contracts/issuers/secondary-customers/index.ts +0 -55
- package/contracts/issuers/secondary-orders/index.ts +0 -57
- package/contracts/issuers/secondary-trades/index.ts +0 -57
- package/contracts/issuers/secure-requests/index.ts +0 -34
- package/contracts/issuers/site-links/index.ts +0 -116
- package/contracts/issuers/site-settings/index.ts +0 -585
- package/contracts/issuers/sites/index.ts +0 -32
- package/contracts/issuers/tasks/index.ts +0 -111
- package/contracts/issuers/trades/index.ts +0 -132
- package/contracts/issuers/transactions/index.ts +0 -158
- package/contracts/issuers/user-manuals/index.ts +0 -62
- package/contracts/issuers/user-settings/index.ts +0 -170
- package/contracts/issuers/users/index.ts +0 -126
- package/contracts/secondaries/accounts/index.ts +0 -58
- package/contracts/secondaries/index.ts +0 -23
- package/contracts/secondaries/secondary-customers/index.ts +0 -55
- package/contracts/secondaries/secondary-issuers/index.ts +0 -94
- package/contracts/secondaries/secondary-orders/index.ts +0 -56
- package/contracts/secondaries/secondary-securities/index.ts +0 -95
- package/contracts/secondaries/secondary-trades/index.ts +0 -56
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { TypeID } from 'typeid-js';
|
|
3
|
-
import { extendZodWithOpenApi } from '@anatine/zod-openapi';
|
|
4
|
-
import { IBaseEntity } from './entity.types';
|
|
5
|
-
import { IPaginationMeta } from './common.types';
|
|
6
|
-
import { accountIdSchema } from './account.types';
|
|
7
|
-
import { secureRequestIdSchema } from './secure-request.types';
|
|
8
|
-
|
|
9
|
-
extendZodWithOpenApi(z);
|
|
10
|
-
|
|
11
|
-
export enum NorthCapIntegrationEnvironment {
|
|
12
|
-
PRODUCTION = 'PRODUCTION',
|
|
13
|
-
SANDBOX = 'SANDBOX',
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export enum NorthCapIntegrationStatus {
|
|
17
|
-
PENDING = 'PENDING',
|
|
18
|
-
VERIFIED = 'VERIFIED',
|
|
19
|
-
ERROR = 'ERROR',
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export const ApiSuccessResponseSchema = z.object({
|
|
23
|
-
valid: z.literal(true),
|
|
24
|
-
status_code: z.number(),
|
|
25
|
-
latency_ms: z.number(),
|
|
26
|
-
raw: z
|
|
27
|
-
.object({
|
|
28
|
-
statusCode: z.string(),
|
|
29
|
-
statusDesc: z.string(),
|
|
30
|
-
job: z
|
|
31
|
-
.object({
|
|
32
|
-
id: z.string(),
|
|
33
|
-
type: z.string(),
|
|
34
|
-
progress: z.string(),
|
|
35
|
-
status: z.string(),
|
|
36
|
-
reason: z.string().nullable(),
|
|
37
|
-
outputId: z.string().nullable(),
|
|
38
|
-
createdAt: z.string(),
|
|
39
|
-
updatedAt: z.string(),
|
|
40
|
-
})
|
|
41
|
-
.optional(),
|
|
42
|
-
})
|
|
43
|
-
.and(z.record(z.any())),
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
export const ApiErrorResponseSchema = z.object({
|
|
47
|
-
valid: z.literal(false),
|
|
48
|
-
status_code: z.number(),
|
|
49
|
-
latency_ms: z.number(),
|
|
50
|
-
raw: z
|
|
51
|
-
.object({
|
|
52
|
-
statusCode: z.string(),
|
|
53
|
-
statusDesc: z.string(),
|
|
54
|
-
})
|
|
55
|
-
.and(z.record(z.any())),
|
|
56
|
-
error: z.string().optional(),
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
export const ApiMessageSchema = z.union([
|
|
60
|
-
ApiSuccessResponseSchema,
|
|
61
|
-
ApiErrorResponseSchema,
|
|
62
|
-
]);
|
|
63
|
-
|
|
64
|
-
export type ApiSuccessResponseSchema = z.infer<typeof ApiSuccessResponseSchema>;
|
|
65
|
-
export type ApiErrorResponseSchema = z.infer<typeof ApiErrorResponseSchema>;
|
|
66
|
-
export type ApiMessageSchema = z.infer<typeof ApiMessageSchema>;
|
|
67
|
-
|
|
68
|
-
export const northCapIntegrationIdSchema = z.string().refine(
|
|
69
|
-
(value) => {
|
|
70
|
-
try {
|
|
71
|
-
const tid = TypeID.fromString(value);
|
|
72
|
-
return tid.getType() === 'north_cap_integration';
|
|
73
|
-
} catch {
|
|
74
|
-
return false;
|
|
75
|
-
}
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
message:
|
|
79
|
-
'Invalid North Cap Integration ID format. Must be a valid TypeID with "north_cap_integration" prefix. Example: north_cap_integration_01j5y5ghx8fvc83dmx3pznq7hv',
|
|
80
|
-
},
|
|
81
|
-
);
|
|
82
|
-
|
|
83
|
-
export const NorthCapIntegrationZod = IBaseEntity.extend({
|
|
84
|
-
id: northCapIntegrationIdSchema,
|
|
85
|
-
accountId: accountIdSchema.openapi({
|
|
86
|
-
example: 'account_01j1xgme5qeqq97gpdztd7e4a6',
|
|
87
|
-
}),
|
|
88
|
-
environment: z
|
|
89
|
-
.nativeEnum(NorthCapIntegrationEnvironment)
|
|
90
|
-
.openapi({ example: NorthCapIntegrationEnvironment.SANDBOX }),
|
|
91
|
-
clientId: z
|
|
92
|
-
.string()
|
|
93
|
-
.min(1, 'Client ID is required')
|
|
94
|
-
.max(50, 'Client ID is too long')
|
|
95
|
-
.openapi({ example: 'client123' }),
|
|
96
|
-
apikey: z
|
|
97
|
-
.string()
|
|
98
|
-
.min(1, 'API key is required')
|
|
99
|
-
.max(255, 'API key is too long')
|
|
100
|
-
.openapi({ example: 'api_key_123' }),
|
|
101
|
-
primaries: z.boolean().openapi({ example: false }),
|
|
102
|
-
secondaries: z.boolean().openapi({ example: true }),
|
|
103
|
-
status: z
|
|
104
|
-
.nativeEnum(NorthCapIntegrationStatus)
|
|
105
|
-
.openapi({ example: NorthCapIntegrationStatus.PENDING }),
|
|
106
|
-
apiMessage: ApiMessageSchema.nullable().openapi({ example: null }),
|
|
107
|
-
secureRequestId: secureRequestIdSchema.openapi({
|
|
108
|
-
example: 'secure_request_01j1xgme5qeqq97gpdztd7e4a6',
|
|
109
|
-
}),
|
|
110
|
-
});
|
|
111
|
-
|
|
112
|
-
export type NorthCapIntegrationZod = z.infer<typeof NorthCapIntegrationZod>;
|
|
113
|
-
|
|
114
|
-
export const IPaginatedNorthCapIntegrations = z.object({
|
|
115
|
-
items: z.array(NorthCapIntegrationZod),
|
|
116
|
-
meta: IPaginationMeta,
|
|
117
|
-
});
|
|
118
|
-
|
|
119
|
-
export type IPaginatedNorthCapIntegrations = z.infer<
|
|
120
|
-
typeof IPaginatedNorthCapIntegrations
|
|
121
|
-
>;
|
|
122
|
-
|
|
123
|
-
export const PostNorthCapIntegrationSchema = z.object({
|
|
124
|
-
accountId: accountIdSchema,
|
|
125
|
-
environment: z
|
|
126
|
-
.nativeEnum(NorthCapIntegrationEnvironment)
|
|
127
|
-
.default(NorthCapIntegrationEnvironment.SANDBOX),
|
|
128
|
-
clientId: z
|
|
129
|
-
.string()
|
|
130
|
-
.min(1, 'Client ID is required')
|
|
131
|
-
.max(50, 'Client ID is too long'),
|
|
132
|
-
apikey: z
|
|
133
|
-
.string()
|
|
134
|
-
.min(1, 'API key is required')
|
|
135
|
-
.max(255, 'API key is too long'),
|
|
136
|
-
primaries: z.boolean().default(false),
|
|
137
|
-
secondaries: z.boolean().default(false),
|
|
138
|
-
apiMessage: ApiMessageSchema.nullable().optional(),
|
|
139
|
-
secureRequestId: secureRequestIdSchema,
|
|
140
|
-
});
|
|
141
|
-
|
|
142
|
-
export type PostNorthCapIntegrationSchema = z.infer<
|
|
143
|
-
typeof PostNorthCapIntegrationSchema
|
|
144
|
-
>;
|
|
145
|
-
|
|
146
|
-
export const UpdateNorthCapIntegrationSchema = z.object({
|
|
147
|
-
status: z.nativeEnum(NorthCapIntegrationStatus).optional(),
|
|
148
|
-
apiMessage: ApiMessageSchema.nullable().optional(),
|
|
149
|
-
});
|
|
150
|
-
|
|
151
|
-
export type UpdateNorthCapIntegrationSchema = z.infer<
|
|
152
|
-
typeof UpdateNorthCapIntegrationSchema
|
|
153
|
-
>;
|
|
154
|
-
|
|
155
|
-
export const NorthCapIntegrationFiltersZod = z.object({
|
|
156
|
-
accountId: accountIdSchema.optional(),
|
|
157
|
-
status: z.nativeEnum(NorthCapIntegrationStatus).optional(),
|
|
158
|
-
});
|
|
159
|
-
|
|
160
|
-
export const northCapIntegrationInclude = z.enum(['account', 'secureRequest']);
|
|
161
|
-
|
|
162
|
-
/**
|
|
163
|
-
* @description Query parameters for including related entities
|
|
164
|
-
* @example in contract use as -> query: z.object({}).merge(NorthCapIntegrationsIncludeQuery),
|
|
165
|
-
*/
|
|
166
|
-
export const NorthCapIntegrationsIncludeQuery = z.object({
|
|
167
|
-
include: z
|
|
168
|
-
.string()
|
|
169
|
-
.optional()
|
|
170
|
-
.transform((str) => (str ? str.split(',') : []))
|
|
171
|
-
.refine(
|
|
172
|
-
(includes) =>
|
|
173
|
-
includes.every((include) =>
|
|
174
|
-
northCapIntegrationInclude.options.includes(include as any),
|
|
175
|
-
),
|
|
176
|
-
{
|
|
177
|
-
message: `Invalid include option provided. Valid options are: ${northCapIntegrationInclude.options.join(',')}`,
|
|
178
|
-
},
|
|
179
|
-
)
|
|
180
|
-
.openapi({
|
|
181
|
-
example: `${northCapIntegrationInclude.options.join(',')}`,
|
|
182
|
-
}),
|
|
183
|
-
});
|
|
184
|
-
|
|
185
|
-
export type NorthCapIntegrationFiltersZod = z.infer<
|
|
186
|
-
typeof NorthCapIntegrationFiltersZod
|
|
187
|
-
>;
|
|
188
|
-
|
|
189
|
-
export interface NorthCapIntegrationsIncludeQuery
|
|
190
|
-
extends z.infer<typeof NorthCapIntegrationsIncludeQuery> {}
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { TypeID } from 'typeid-js';
|
|
3
|
-
import { extendZodWithOpenApi } from '@anatine/zod-openapi';
|
|
4
|
-
import { IBaseEntity } from './entity.types';
|
|
5
|
-
import {
|
|
6
|
-
IPaginationMeta,
|
|
7
|
-
TargetTableConfig,
|
|
8
|
-
TargetTableEnum,
|
|
9
|
-
// UserWithoutPasswordAccountZod,
|
|
10
|
-
} from './common.types';
|
|
11
|
-
import { accountIdSchema } from './account.types';
|
|
12
|
-
extendZodWithOpenApi(z);
|
|
13
|
-
|
|
14
|
-
export const noteIdSchema = z.string().refine(
|
|
15
|
-
(value) => {
|
|
16
|
-
try {
|
|
17
|
-
const tid = TypeID.fromString(value);
|
|
18
|
-
return tid.getType() === 'note';
|
|
19
|
-
} catch {
|
|
20
|
-
return false;
|
|
21
|
-
}
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
message:
|
|
25
|
-
'Invalid note ID format. Must be a valid TypeID with "note" prefix. Example: note_01j5y5ghx8fvc83dmx3pznq7hv',
|
|
26
|
-
},
|
|
27
|
-
);
|
|
28
|
-
|
|
29
|
-
export const NoteZod = IBaseEntity.extend({
|
|
30
|
-
id: noteIdSchema,
|
|
31
|
-
body: z.string(),
|
|
32
|
-
accountId: z.string(),
|
|
33
|
-
userId: z.string(),
|
|
34
|
-
targetTable: z.enum(TargetTableEnum),
|
|
35
|
-
targetId: z.string(),
|
|
36
|
-
}).refine(
|
|
37
|
-
(data) => {
|
|
38
|
-
const { targetTable, targetId } = data;
|
|
39
|
-
const idPrefix = TargetTableConfig[targetTable].idPrefix;
|
|
40
|
-
try {
|
|
41
|
-
const tid = TypeID.fromString(targetId);
|
|
42
|
-
return tid.getType() === idPrefix;
|
|
43
|
-
} catch {
|
|
44
|
-
return false;
|
|
45
|
-
}
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
message:
|
|
49
|
-
"Invalid target ID format. Must match the corresponding table's ID prefix.",
|
|
50
|
-
path: ['targetId'],
|
|
51
|
-
},
|
|
52
|
-
);
|
|
53
|
-
export type NoteZod = z.infer<typeof NoteZod>;
|
|
54
|
-
|
|
55
|
-
export const IPaginatedNote = z.object({
|
|
56
|
-
items: z.array(NoteZod),
|
|
57
|
-
meta: IPaginationMeta,
|
|
58
|
-
});
|
|
59
|
-
export type IPaginatedNote = z.infer<typeof IPaginatedNote>;
|
|
60
|
-
|
|
61
|
-
export const PostNoteBody = z.object({
|
|
62
|
-
body: z.string(),
|
|
63
|
-
targetId: z.string().refine(
|
|
64
|
-
(value) => {
|
|
65
|
-
try {
|
|
66
|
-
const tid = TypeID.fromString(value);
|
|
67
|
-
return Object.values(TargetTableConfig).some(
|
|
68
|
-
(config) => config.idPrefix === tid.getType(),
|
|
69
|
-
);
|
|
70
|
-
} catch {
|
|
71
|
-
return false;
|
|
72
|
-
}
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
message: `Invalid target ID format. Must match the corresponding table's ID prefix. Valid prefix: ${TargetTableEnum.toString().toLowerCase()}. Example: disbursement_01j6aqmtfyfwy9spjdcnh7yqk7`,
|
|
76
|
-
},
|
|
77
|
-
),
|
|
78
|
-
});
|
|
79
|
-
export type PostNoteBody = z.infer<typeof PostNoteBody>;
|
|
80
|
-
|
|
81
|
-
export const CompliancePostNoteBody = PostNoteBody.extend({
|
|
82
|
-
accountId: accountIdSchema,
|
|
83
|
-
});
|
|
84
|
-
|
|
85
|
-
export type CompliancePostNoteBody = z.infer<typeof CompliancePostNoteBody>;
|
|
86
|
-
|
|
87
|
-
export const NotesFilters = z.object({
|
|
88
|
-
targetTable: z.enum(TargetTableEnum).optional(),
|
|
89
|
-
targetId: z
|
|
90
|
-
.string()
|
|
91
|
-
.optional()
|
|
92
|
-
.refine(
|
|
93
|
-
(value) => {
|
|
94
|
-
try {
|
|
95
|
-
if (!value) return true;
|
|
96
|
-
const tid = TypeID.fromString(value);
|
|
97
|
-
return Object.values(TargetTableConfig).some(
|
|
98
|
-
(config) => config.idPrefix === tid.getType(),
|
|
99
|
-
);
|
|
100
|
-
} catch {
|
|
101
|
-
return false;
|
|
102
|
-
}
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
message: `Invalid target ID format. Must match the corresponding table's ID prefix. Valid prefix: ${TargetTableEnum.toString().toLowerCase()}. Example: disbursement_01j6aqmtfyfwy9spjdcnh7yqk7`,
|
|
106
|
-
},
|
|
107
|
-
),
|
|
108
|
-
});
|
|
109
|
-
export type NotesFilters = z.infer<typeof NotesFilters>;
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { extendZodWithOpenApi } from '@anatine/zod-openapi';
|
|
2
|
-
import { z } from 'zod';
|
|
3
|
-
import { TypeID } from 'typeid-js';
|
|
4
|
-
import { accountIdSchema } from './account.types';
|
|
5
|
-
|
|
6
|
-
extendZodWithOpenApi(z);
|
|
7
|
-
export enum NotificationChannel {
|
|
8
|
-
EMAIL = 'EMAIL',
|
|
9
|
-
SLACK = 'SLACK',
|
|
10
|
-
}
|
|
11
|
-
export enum NotificationType {
|
|
12
|
-
COMPLIANCE_TRADE_ALERT = 'COMPLIANCE_TRADE_ALERT',
|
|
13
|
-
TRADE_ALERT = 'TRADE_ALERT',
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export const notificationIdSchema = z.string().refine(
|
|
17
|
-
(value) => {
|
|
18
|
-
try {
|
|
19
|
-
const tid = TypeID.fromString(value);
|
|
20
|
-
return tid.getType() === 'notification';
|
|
21
|
-
} catch {
|
|
22
|
-
return false;
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
message:
|
|
27
|
-
'Invalid notification ID format. Must be a valid TypeID with "notification" prefix.',
|
|
28
|
-
},
|
|
29
|
-
);
|
|
30
|
-
|
|
31
|
-
export const SendNotificationZod = z.object({
|
|
32
|
-
message: z.string(),
|
|
33
|
-
subject: z.string(),
|
|
34
|
-
buttonText: z.string(),
|
|
35
|
-
link: z.string(),
|
|
36
|
-
debug: z.boolean().default(false),
|
|
37
|
-
notificationChannel: z.nativeEnum(NotificationChannel),
|
|
38
|
-
channelName: z.string(),
|
|
39
|
-
channelEmail: z.string().email(),
|
|
40
|
-
notificationType: z.nativeEnum(NotificationType),
|
|
41
|
-
});
|
|
42
|
-
export type SendNotificationZod = z.infer<typeof SendNotificationZod>;
|
|
43
|
-
|
|
44
|
-
const SlackSettingsSchema = z.object({
|
|
45
|
-
channelName: z.string().min(1).max(50),
|
|
46
|
-
channelEmail: z.string().email(),
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
export const PostNotificationZod = z.object({
|
|
50
|
-
accountId: accountIdSchema,
|
|
51
|
-
notificationChannel: z.literal(NotificationChannel.SLACK), // Only Slack for now
|
|
52
|
-
notificationType: z.nativeEnum(NotificationType),
|
|
53
|
-
enabled: z.boolean().default(true),
|
|
54
|
-
debug: z.boolean().default(false),
|
|
55
|
-
settings: SlackSettingsSchema,
|
|
56
|
-
});
|
|
57
|
-
|
|
58
|
-
export type PostNotificationZod = z.infer<typeof PostNotificationZod>;
|