Fiado 类型套件
Bibliotica de DTOs, Enums y Tipos Comparatidos par el Ecosistema Fiado 互联网档案馆的存檔,存档日期2013-12-20
康特尼多斯塔布拉
取消常规
@fiado/type-kit 对啦 中央医院 (原始内容存档于2018-03-26) (英语). del Ecosistema Fiado que properciona:
- DTOs (数据传输对象): Clases tipadas para 请求 y 响应 APIs
- 数字经济、社会、文化权利委员会
- 实体(原始内容存档于2013-10-12). Entides base para modelos de datos
- 接口Contotos Compatidos 使用微服务
- 审定页:1
class-validator《公约》第2条
提案
En una arquitectura de microservicios, as basic mantener (原始内容存档于2018-09-29) 国家妇女委员会 互通服务 埃斯塔·比利奥特卡:
- 中央区 独身露天足球场
- 加兰蒂扎 qe todos 微服务器使用 las mismas estructuras
- 机构 装饰设计手册
- 减少 科特迪瓦促进民主联盟
阿基特克图拉
+------------------+
| @fiado/type-kit |
+--------+---------+
|
+--------------------+--------------------+
| | |
v v v
+---------------+ +---------------+ +---------------+
| Lambda Card | | Lambda Account| | Lambda Trans |
| Microservice | | Microservice | | Microservice |
+---------------+ +---------------+ +---------------+
| | |
+--------------------+--------------------+
|
v
+------------------+
| API Gateway |
+------------------+
弗卢霍·德·蒂波斯
- 请求: 客户端 envia datos - > API 网关 - > Lambda vicea con DTOs de request 互联网档案馆的存檔,存档日期2013-12-02
- Procesamiento 软件: Lambda usa Enums y Inities para logica de negocio
- 回应: Lambda redrona datos usando DTOs de response - > 客户端e
伊斯塔拉西翁
npm install @fiado/type-kit
同伴依赖关系
Esta bibliotica no tyne pal 依赖关系, pero utiliza internament:
{
"class-transformer": "^0.5.1",
"class-validator": "^0.14.2"
}
责任人
组织机构 60岁以上 {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}好 {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}好极了
塞尔维西奥斯核心
| 多米尼奥 | 脱口而出 | 康特尼多语Name |
|---|---|---|
account | 班卡利亚和歌剧院 | 44个DTO, 12个Enum |
card | 塔列塔斯纤维与虚拟 | 40个DTO, 26个Enum |
transaction | 过境和流动 | 24个DTO、6个Enum |
directory | 用益主任 | 8个DTO、6个Enum |
identity | 身份验证(KYC) | 7个DTO、8个Enum |
authentication | 警示和静脉 | 10个DTO |
塞尔维西奥斯-德帕果
| 多米尼奥 | 脱口而出 | 康特尼多语Name |
|---|---|---|
transactionProcessor | 过境方案 | 39个DTO、7个Enum |
centralPayments | 中央教育组织 | 14个DTO/Enum |
stpSpei | SPEI 转让 | 10个DTO/Enum |
servicePayment | 服务之道 | 4个DTO/Enum |
collector | 科布兰萨 | 14个DTO/Enum |
乌苏阿里奥岛
| 多米尼奥 | 脱口而出 | 康特尼多语Name |
|---|---|---|
beneficiary | 转移受益人 | 5个DTO/Enum |
bankAccount | 外科医生 | 10个DTO/Enum |
address | 司长 | 24个DTO/Enum |
contactInfo | 联系信息 | 9个DTO/Enum |
group | 用益国 | 11个DTO/铝 |
role | 角色与永久关系 | 9个DTO/Enum |
谢尔维西奥斯·德里斯戈
| 多米尼奥 | 脱口而出 | 康特尼多语Name |
|---|---|---|
riskProfile | 皮条客 | 13个DTO、10个Enum |
fraudPreventionEngine | 欺诈行为 | 5个DTO/Enum |
blacklist | 列作线草 | 5个DTO/Enum |
塞内加尔
| 多米尼奥 | 脱口而出 | 康特尼多语Name |
|---|---|---|
issuanceBusiness | 暂停执行 | 6个DTO/Enum |
pricelist | 排行榜 | 9个DTO/Enum |
services | 服务目录 | 18个DTO/Enum |
productCatalog | 产品目录 | 7个DTO/Enum |
contract | 对比度 | 3个DTO/Enum |
creditContract | 信贷银行 | 3个DTO/Enum |
塞浦路斯
| 多米尼奥 | 脱口而出 | 康特尼多语Name |
|---|---|---|
notificationMessages | Mensajes 和 通知 | 4个DTO、2个Enum |
notificationWS | WebSocket 通知 | 2个DTO/Enum |
helpdesk | 索波特客户端e | 3个DTO/Enum |
经济、社会、文化权利委员会
| 多米尼奥 | 脱口而出 | 康特尼多语Name |
|---|---|---|
header | Token有效载荷 de JWT | 托肯平话数 |
eventBridge | Mensajes de eventBridge 事件简介 | 事件信箱请求 |
genericMessage | Mensajes 通用语言 | 一般信息源代码 |
apiResponse | (原始内容存档于2018-10-21). Respuesta estandar de API | 菲亚多阿皮回复 |
queue | 科拉斯岛 | 1个DTO |
奥特罗斯·多米尼奥斯
| 多米尼奥 | 脱口而出 |
|---|---|
activity | 用益活动 |
app | 政治理论 |
auth | 自动 |
bbvaRst | 综合BBVA |
cnbv | CNBV 报告 |
cognitoConnector | 认知 |
country | 区域 |
currency | 莫内达斯 |
device | 处置者 |
exchangeRate | Tipos de Cambio (法语) |
observations | KYC观测站 |
p2pContact | 联系人P2P |
provider | 证明人 |
sessionActivity | 活动 |
stpAccount | Cuentas STP 软件 |
乌苏
导入多米尼奥( 重新推荐)
// Importar desde el dominio especifico
import {
AccountCreateRequest,
AccountCreateResponse,
AccountLevelEnum,
BankAccountTypeEnum
} from "@fiado/type-kit/bin/account";
import {
CardActivateRequest,
CardResponse,
CardType,
CardIssuanceStatus
} from "@fiado/type-kit/bin/card";
import {
TransactionCreateRequest,
TransactionStatusEnum,
OperationEnum
} from "@fiado/type-kit/bin/transaction";
导入命名空间
import { Account, Card, Transaction } from "@fiado/type-kit";
// Usar con namespace
const request: Account.AccountCreateRequest = { ... };
const cardType: Card.CardType = Card.CardType.VIRTUAL;
const status: Transaction.TransactionStatusEnum = Transaction.TransactionStatusEnum.COMPLETED;
Ejemplo: Crear una Cuenta (法语)
import {
AccountCreateRequest,
AccountCreateResponse,
BankAccountTypeEnum,
AccountLevelEnum
} from "@fiado/type-kit/bin/account";
async function createAccount(data: AccountCreateRequest): Promise<AccountCreateResponse> {
// Validar que el tipo de cuenta sea valido
if (data.accountType === BankAccountTypeEnum.SAVINGS) {
// Logica para cuenta de ahorro
}
// Verificar nivel de cuenta
if (data.level === AccountLevelEnum.LEVEL_2) {
// Requiere verificacion adicional
}
return { accountId: "...", status: "CREATED" };
}
Ejemplo: Processar Transaccion (英语)
import {
TransactionCreateRequest,
TransactionCreateResponse,
TransactionStatusEnum,
OperationEnum
} from "@fiado/type-kit/bin/transaction";
async function processTransaction(
request: TransactionCreateRequest
): Promise<TransactionCreateResponse> {
if (request.operation === OperationEnum.CREDIT) {
// Procesar credito
} else if (request.operation === OperationEnum.DEBIT) {
// Procesar debito
}
return {
transactionId: "...",
status: TransactionStatusEnum.COMPLETED
};
}
Ejemplo: 有效请求类验证器
import { validate } from 'class-validator';
import { plainToClass } from 'class-transformer';
import { CardActivateRequest } from "@fiado/type-kit/bin/card";
async function validateRequest(body: any): Promise<CardActivateRequest> {
const request = plainToClass(CardActivateRequest, body);
const errors = await validate(request);
if (errors.length > 0) {
throw new Error(`Validation failed: ${errors.map(e => e.toString()).join(', ')}`);
}
return request;
}
发展会议
口服DTO
| 提波 | 赞助 | 埃让普罗 |
|---|---|---|
| 请求 | {Entity}{Action}Request | CardActivateRequest, (中文(简体) ), AccountCreateRequest |
| 回应 | {Entity}{Action}Response | CardBalanceResponse, (中文(简体) ), AccountCreateResponse |
| 查询 | {Entity}QueryParams | TransactionQueryParams |
| 项目 | {Entity}Item | TransactionItem, (中文(简体) ), PocketItem |
诺门克拉图拉德纳姆
| 提波 | 赞助 | 埃让普罗 |
|---|---|---|
| 状态 | {Entity}StatusEnum | CardIssuanceStatus, (中文(简体) ), TransactionStatusEnum |
| 类型 | {Entity}TypeEnum | BankAccountTypeEnum, (中文(简体) ), CardType |
| 运行 | {Action}Enum | OperationEnum, (中文(简体) ), PocketOperationTypeEnum |
等级核证人
请求: DEBEN incluire de validacion的装饰者
import { IsNotEmpty, IsString, IsNumber, IsEnum, IsOptional } from 'class-validator';
export class CardActivateRequest {
@IsNotEmpty()
@IsString()
readonly cardId: string;
@IsNotEmpty()
@IsString()
readonly userId: string;
@IsOptional()
@IsEnum(ActivationMethod)
readonly method?: ActivationMethod;
}
回应: 无效
export class CardActivateResponse {
cardId: string;
status: CardIssuanceStatus;
activatedAt: string;
}
穆杜洛区
卡达·多米尼奥·斯克·埃斯塔克图拉:
{domain}/
├── dtos/ # Data Transfer Objects
│ ├── {Entity}Request.ts
│ ├── {Entity}Response.ts
│ └── Internal/ # DTOs internos (opcional)
├── enums/ # Enumeraciones
│ ├── {Entity}StatusEnum.ts
│ └── {Entity}TypeEnum.ts
├── entities/ # Entidades base (opcional)
│ └── {Entity}EntityBase.ts
├── constants/ # Constantes (opcional)
│ └── {entity}Constants.ts
└── index.ts # Exportaciones del modulo
莫杜洛斯岛
Ejemplo: Modulo 账户
account/
├── dtos/
│ ├── AccountCreateRequest.ts
│ ├── AccountCreateResponse.ts
│ ├── AccountUpdateRequest.ts
│ ├── GetAccountResponse.ts
│ ├── GetAccountBalanceResponse.ts
│ ├── BankAccountP2pTransferRequest.ts
│ ├── BankAccountP2pTransferResponse.ts
│ ├── SPEITransferCreateRequest.ts
│ ├── SPEITransferResponse.ts
│ └── ... (44 DTOs total)
├── entities/
│ ├── AccountEntityBase.ts
│ └── BankInfo.ts
├── enums/
│ ├── AccountEntityStatusEnum.ts
│ ├── BankAccountTypeEnum.ts
│ ├── AccountLevelEnum.ts
│ ├── SpeiTransferStatusEnum.ts
│ └── ... (12 Enums total)
└── index.ts
Ejemplo: 莫杜洛卡
card/
├── dtos/
│ ├── CardActivateRequest.ts
│ ├── CardApplicationRequest.ts
│ ├── CardUpdateRequest.ts
│ ├── CardResponse.ts
│ ├── CardBalanceResponse.ts
│ ├── CardSensitiveInformationResponse.ts
│ └── Internal/
│ ├── CreateBankAccountCardRequest.ts
│ ├── CreateBankAccountCardResponse.ts
│ ├── ActivateBankAccountCardRequest.ts
│ └── ... (DTOs internos)
├── enums/
│ ├── CardType.ts
│ ├── CardIssuanceStatus.ts
│ ├── Brand.ts
│ ├── VirtualOrPhysical.ts
│ ├── ShippingStatus.ts
│ └── issuance/
│ ├── KycStatus.ts
│ ├── UserStatus.ts
│ └── IssuanceFlow.ts
├── validations/
│ └── cardValidations.ts
└── index.ts
轮胎专家
托肯平话数
JWT de Cognoto 接口有效载荷:
import { TokenPayload } from "@fiado/type-kit/bin/header";
interface TokenPayload {
directoryId: string; // ID del directorio
typeOfDirectoryId: TypeOfDirectoryId;
peopleId: string | null; // ID de persona
sub: string; // Subject (Cognito user ID)
app: string; // Aplicacion origen
issuer: string; // Emisor del token
scope: string; // Scope del token
phoneNumber?: string | null; // Telefono
status: Status | null; // Estado del usuario
id: string; // ID interno
profileId?: string | null; // ID de perfil
email?: string | null; // Email
event_id?: string; // ID de evento
sponsorDirectoryId?: string | null; // Sponsor
}
菲亚多阿皮回复
接口 estandar para respuestas de API :
import FiadoApiResponse from "@fiado/type-kit/bin/apiResponse";
interface FiadoApiResponse<T> {
data: T; // Datos de respuesta
date: string | null; // Timestamp
code: string | null; // Codigo de respuesta
msg: string | null; // Mensaje
description: string | null; // Descripcion
}
事件信箱请求
事件桥:
import { EventBridgeMessageRequest } from "@fiado/type-kit/bin/eventBridge";
class EventBridgeMessageRequest<T> extends GenericMessageRequest<T> {
// Hereda propiedades de GenericMessageRequest
// - source: GenericMessageSourceEnum
// - payload: T
// - eventType: string
}
依赖性
运行时间
| 依赖性 | 版本 | 提案 |
|---|---|---|
class-transformer | ^0.5.1 (中文(简体) ) | 变形为一团 |
class-validator | ^0.14.2 (中文(简体) ) | DTOs 装饰者验证 |
发展
| 依赖性 | 版本 | 提案 |
|---|---|---|
@types/node | ^20.11.20 (中文(简体) ) | 提波斯节点js |
typescript | ^ 5.3.3 (中文(简体) ) | 编译器类型脚本 |
合作与公众
构建
npm run build
热那拉群岛 .js 尔 .d.ts 导演 bin/。 。 。 .
测试
npm test
公众
npm version patch|minor|major
npm publish
普罗耶克托岛
fiado-type-kit/
├── src/ # Codigo fuente
│ ├── index.ts # Exportaciones principales
│ ├── account/ # Dominio Account (59 items)
│ ├── card/ # Dominio Card (69 items)
│ ├── transaction/ # Dominio Transaction (31 items)
│ ├── transactionProcessor/ # Dominio TransactionProcessor (47 items)
│ ├── directory/ # Dominio Directory (15 items)
│ ├── identity/ # Dominio Identity (16 items)
│ ├── riskProfile/ # Dominio RiskProfile (24 items)
│ ├── ... (60+ dominios)
│ └── header/ # TokenPayload
├── bin/ # Archivos compilados
├── package.json
├── tsconfig.json
└── README.md
菲亚多公司. @ fiado/ type- kit v 2.1.4