@planu/cli 0.31.0 → 0.33.0
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/config/license-plans.json +4 -1
- package/dist/config/team-templates.json +39 -0
- package/dist/engine/license-validator/core.d.ts.map +1 -1
- package/dist/engine/license-validator/core.js +7 -4
- package/dist/engine/license-validator/core.js.map +1 -1
- package/dist/engine/spec-templates/fintech-compliance.d.ts +4 -0
- package/dist/engine/spec-templates/fintech-compliance.d.ts.map +1 -0
- package/dist/engine/spec-templates/fintech-compliance.js +111 -0
- package/dist/engine/spec-templates/fintech-compliance.js.map +1 -0
- package/dist/engine/spec-templates/fintech-kyc.d.ts +4 -0
- package/dist/engine/spec-templates/fintech-kyc.d.ts.map +1 -0
- package/dist/engine/spec-templates/fintech-kyc.js +125 -0
- package/dist/engine/spec-templates/fintech-kyc.js.map +1 -0
- package/dist/engine/spec-templates/fintech-transactions.d.ts +4 -0
- package/dist/engine/spec-templates/fintech-transactions.d.ts.map +1 -0
- package/dist/engine/spec-templates/fintech-transactions.js +120 -0
- package/dist/engine/spec-templates/fintech-transactions.js.map +1 -0
- package/dist/engine/spec-templates/templates-industry-fintech.d.ts +3 -7
- package/dist/engine/spec-templates/templates-industry-fintech.d.ts.map +1 -1
- package/dist/engine/spec-templates/templates-industry-fintech.js +4 -348
- package/dist/engine/spec-templates/templates-industry-fintech.js.map +1 -1
- package/dist/engine/team-planner/distribution-planner.d.ts +7 -0
- package/dist/engine/team-planner/distribution-planner.d.ts.map +1 -0
- package/dist/engine/team-planner/distribution-planner.js +78 -0
- package/dist/engine/team-planner/distribution-planner.js.map +1 -0
- package/dist/engine/team-planner/index.d.ts +4 -0
- package/dist/engine/team-planner/index.d.ts.map +1 -0
- package/dist/engine/team-planner/index.js +5 -0
- package/dist/engine/team-planner/index.js.map +1 -0
- package/dist/engine/team-planner/prompt-builder.d.ts +7 -0
- package/dist/engine/team-planner/prompt-builder.d.ts.map +1 -0
- package/dist/engine/team-planner/prompt-builder.js +79 -0
- package/dist/engine/team-planner/prompt-builder.js.map +1 -0
- package/dist/engine/team-planner/result-validator.d.ts +7 -0
- package/dist/engine/team-planner/result-validator.d.ts.map +1 -0
- package/dist/engine/team-planner/result-validator.js +51 -0
- package/dist/engine/team-planner/result-validator.js.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/tools/create-spec/post-creation.d.ts +3 -1
- package/dist/tools/create-spec/post-creation.d.ts.map +1 -1
- package/dist/tools/create-spec/post-creation.js +37 -1
- package/dist/tools/create-spec/post-creation.js.map +1 -1
- package/dist/tools/create-spec.d.ts.map +1 -1
- package/dist/tools/create-spec.js +6 -1
- package/dist/tools/create-spec.js.map +1 -1
- package/dist/tools/generate-teammate-prompt.d.ts +17 -0
- package/dist/tools/generate-teammate-prompt.d.ts.map +1 -0
- package/dist/tools/generate-teammate-prompt.js +86 -0
- package/dist/tools/generate-teammate-prompt.js.map +1 -0
- package/dist/tools/git/hook-ops.d.ts.map +1 -1
- package/dist/tools/git/hook-ops.js +10 -1
- package/dist/tools/git/hook-ops.js.map +1 -1
- package/dist/tools/init-project/handler.d.ts.map +1 -1
- package/dist/tools/init-project/handler.js +71 -1
- package/dist/tools/init-project/handler.js.map +1 -1
- package/dist/tools/init-project/helpers.d.ts +2 -2
- package/dist/tools/init-project/helpers.d.ts.map +1 -1
- package/dist/tools/init-project/helpers.js +3 -11
- package/dist/tools/init-project/helpers.js.map +1 -1
- package/dist/tools/init-project/result-builder.d.ts.map +1 -1
- package/dist/tools/init-project/result-builder.js +6 -0
- package/dist/tools/init-project/result-builder.js.map +1 -1
- package/dist/tools/list-specs.d.ts.map +1 -1
- package/dist/tools/list-specs.js +16 -0
- package/dist/tools/list-specs.js.map +1 -1
- package/dist/tools/plan-team-distribution.d.ts +9 -0
- package/dist/tools/plan-team-distribution.d.ts.map +1 -0
- package/dist/tools/plan-team-distribution.js +138 -0
- package/dist/tools/plan-team-distribution.js.map +1 -0
- package/dist/tools/register-team-tools.d.ts +3 -0
- package/dist/tools/register-team-tools.d.ts.map +1 -0
- package/dist/tools/register-team-tools.js +47 -0
- package/dist/tools/register-team-tools.js.map +1 -0
- package/dist/tools/update-status.d.ts.map +1 -1
- package/dist/tools/update-status.js +71 -3
- package/dist/tools/update-status.js.map +1 -1
- package/dist/tools/validate-team-results.d.ts +9 -0
- package/dist/tools/validate-team-results.d.ts.map +1 -0
- package/dist/tools/validate-team-results.js +82 -0
- package/dist/tools/validate-team-results.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/project/agent.d.ts +12 -0
- package/dist/types/project/agent.d.ts.map +1 -0
- package/dist/types/project/agent.js +3 -0
- package/dist/types/project/agent.js.map +1 -0
- package/dist/types/project/architecture-detection.d.ts +23 -0
- package/dist/types/project/architecture-detection.d.ts.map +1 -0
- package/dist/types/project/architecture-detection.js +2 -0
- package/dist/types/project/architecture-detection.js.map +1 -0
- package/dist/types/project/config-metrics.d.ts +29 -0
- package/dist/types/project/config-metrics.d.ts.map +1 -0
- package/dist/types/project/config-metrics.js +2 -0
- package/dist/types/project/config-metrics.js.map +1 -0
- package/dist/types/project/constitution.d.ts +31 -0
- package/dist/types/project/constitution.d.ts.map +1 -0
- package/dist/types/project/constitution.js +3 -0
- package/dist/types/project/constitution.js.map +1 -0
- package/dist/types/project/core.d.ts +18 -163
- package/dist/types/project/core.d.ts.map +1 -1
- package/dist/types/project/core.js +7 -1
- package/dist/types/project/core.js.map +1 -1
- package/dist/types/project/mfe-detection.d.ts +18 -0
- package/dist/types/project/mfe-detection.d.ts.map +1 -0
- package/dist/types/project/mfe-detection.js +3 -0
- package/dist/types/project/mfe-detection.js.map +1 -0
- package/dist/types/project/planu-config.d.ts +59 -0
- package/dist/types/project/planu-config.d.ts.map +1 -0
- package/dist/types/project/planu-config.js +2 -0
- package/dist/types/project/planu-config.js.map +1 -0
- package/dist/types/spec/inputs.d.ts +5 -0
- package/dist/types/spec/inputs.d.ts.map +1 -1
- package/dist/types/team-planner.d.ts +183 -0
- package/dist/types/team-planner.d.ts.map +1 -0
- package/dist/types/team-planner.js +3 -0
- package/dist/types/team-planner.js.map +1 -0
- package/package.json +1 -1
- package/src/config/license-plans.json +4 -1
- package/src/config/team-templates.json +39 -0
|
@@ -71,6 +71,7 @@
|
|
|
71
71
|
"generate_rules",
|
|
72
72
|
"generate_skill",
|
|
73
73
|
"generate_sub_agent",
|
|
74
|
+
"generate_teammate_prompt",
|
|
74
75
|
"integrate_pm",
|
|
75
76
|
"log_decision",
|
|
76
77
|
"manage_context",
|
|
@@ -79,6 +80,7 @@
|
|
|
79
80
|
"orchestrate",
|
|
80
81
|
"orchestrate_agents",
|
|
81
82
|
"package_handoff",
|
|
83
|
+
"plan_team_distribution",
|
|
82
84
|
"paradigm_report",
|
|
83
85
|
"plan_upgrade",
|
|
84
86
|
"reality_check",
|
|
@@ -118,7 +120,8 @@
|
|
|
118
120
|
"create_pr_from_spec",
|
|
119
121
|
"review_pr",
|
|
120
122
|
"create_release",
|
|
121
|
-
"generate_changelog"
|
|
123
|
+
"generate_changelog",
|
|
124
|
+
"validate_team_results"
|
|
122
125
|
],
|
|
123
126
|
"alwaysAllowed": [
|
|
124
127
|
"activate_license",
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "implement-and-test",
|
|
4
|
+
"name": "Implement & Test",
|
|
5
|
+
"description": "1 implementer + 1 tester per spec",
|
|
6
|
+
"pattern": "implement-and-test",
|
|
7
|
+
"roles": [
|
|
8
|
+
{ "role": "implementer", "model": "sonnet", "count": "per-spec" },
|
|
9
|
+
{ "role": "tester", "model": "sonnet", "count": "per-spec" }
|
|
10
|
+
]
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"id": "full-stack",
|
|
14
|
+
"name": "Full Stack",
|
|
15
|
+
"description": "Frontend + backend + test teammates",
|
|
16
|
+
"pattern": "full-stack",
|
|
17
|
+
"roles": [
|
|
18
|
+
{ "role": "implementer", "model": "sonnet", "count": 2 },
|
|
19
|
+
{ "role": "tester", "model": "sonnet", "count": 1 }
|
|
20
|
+
]
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"id": "research-then-build",
|
|
24
|
+
"name": "Research Then Build",
|
|
25
|
+
"description": "1 researcher feeds N implementers",
|
|
26
|
+
"pattern": "research-then-build",
|
|
27
|
+
"roles": [
|
|
28
|
+
{ "role": "researcher", "model": "opus", "count": 1 },
|
|
29
|
+
{ "role": "implementer", "model": "sonnet", "count": "per-spec" }
|
|
30
|
+
]
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"id": "parallel-specs",
|
|
34
|
+
"name": "Parallel Specs",
|
|
35
|
+
"description": "N implementers for independent specs",
|
|
36
|
+
"pattern": "parallel-specs",
|
|
37
|
+
"roles": [{ "role": "implementer", "model": "sonnet", "count": "per-spec" }]
|
|
38
|
+
}
|
|
39
|
+
]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/engine/license-validator/core.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,UAAU,EACX,MAAM,sBAAsB,CAAC;AAe9B,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,GAAG,WAAW,CAQ1E;AAqBD,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,CAG9D;AAMD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAa1E;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,kBAAkB,
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/engine/license-validator/core.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,UAAU,EACX,MAAM,sBAAsB,CAAC;AAe9B,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,GAAG,WAAW,CAQ1E;AAqBD,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,CAG9D;AAMD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAa1E;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,kBAAkB,CAsBvF;AAMD,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,UAAU,CAG3D;AAED,wBAAgB,WAAW,CACzB,IAAI,EAAE,WAAW,EACjB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,aAAa,GAAG,gBAAgB,GAC1C,kBAAkB,CAoBpB;AAMD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAG9D;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAG5D"}
|
|
@@ -72,7 +72,8 @@ export function checkToolAccess(toolName, tier) {
|
|
|
72
72
|
message: [
|
|
73
73
|
`🔒 "${toolName}" requires a Pro or higher plan.`,
|
|
74
74
|
`You are currently on the Free plan (${String(freeCount)} tools available).`,
|
|
75
|
-
`
|
|
75
|
+
`Pro plan includes unlimited projects and all ${String(totalCount)}+ tools.`,
|
|
76
|
+
`Upgrade to Pro → ${config.upgradeUrl}`,
|
|
76
77
|
'',
|
|
77
78
|
'To activate a license key:',
|
|
78
79
|
' → Use the activate_license tool with your license key.',
|
|
@@ -94,14 +95,16 @@ export function checkLimits(tier, currentCount, limitType) {
|
|
|
94
95
|
}
|
|
95
96
|
const config = loadLicensePlans();
|
|
96
97
|
const label = limitType === 'maxProjects' ? 'projects' : 'active specs';
|
|
98
|
+
const proLimits = config.tiers.pro;
|
|
99
|
+
const proMax = proLimits[limitType];
|
|
100
|
+
const proLabel = proMax >= 9999 ? 'unlimited' : String(proMax);
|
|
97
101
|
return {
|
|
98
102
|
allowed: false,
|
|
99
103
|
currentTier: tier,
|
|
100
104
|
requiredTier: 'pro',
|
|
101
105
|
message: [
|
|
102
|
-
`🔒
|
|
103
|
-
`
|
|
104
|
-
`Upgrade at ${config.upgradeUrl} to increase your limits.`,
|
|
106
|
+
`🔒 ${label.charAt(0).toUpperCase() + label.slice(1)} limit reached (${String(currentCount)}/${String(max)} on free plan).`,
|
|
107
|
+
`Upgrade to Pro for ${proLabel} ${label} and 85+ tools → ${config.upgradeUrl}`,
|
|
105
108
|
].join('\n'),
|
|
106
109
|
};
|
|
107
110
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/engine/license-validator/core.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/engine/license-validator/core.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fintech-compliance.d.ts","sourceRoot":"","sources":["../../../src/engine/spec-templates/fintech-compliance.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,mCAAmC;AACnC,eAAO,MAAM,2BAA2B,EAAE,iBA0GzC,CAAC"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
// engine/spec-templates/fintech-compliance.ts — Fintech compliance template.
|
|
2
|
+
// AC-04: Templates by industry — fintech vertical (compliance).
|
|
3
|
+
/** Fintech compliance template. */
|
|
4
|
+
export const FINTECH_COMPLIANCE_TEMPLATE = {
|
|
5
|
+
id: 'fintech-compliance',
|
|
6
|
+
name: 'Reportes de compliance regulatorio',
|
|
7
|
+
category: 'industry',
|
|
8
|
+
subcategory: 'fintech',
|
|
9
|
+
description: 'Generacion de reportes regulatorios, retencion de datos y firma digital.',
|
|
10
|
+
tags: ['fintech', 'compliance', 'regulatory', 'reporting', 'audit'],
|
|
11
|
+
complexityScore: 'L',
|
|
12
|
+
estimationBase: {
|
|
13
|
+
hoursMin: 40,
|
|
14
|
+
hoursMax: 80,
|
|
15
|
+
notes: 'Depende de regulaciones locales aplicables',
|
|
16
|
+
},
|
|
17
|
+
criteria: [
|
|
18
|
+
{ id: 'AC-1', title: 'Generacion de reportes', required: true },
|
|
19
|
+
{ id: 'AC-2', title: 'Retencion de datos', required: true },
|
|
20
|
+
{ id: 'AC-3', title: 'Firma digital', required: false },
|
|
21
|
+
{ id: 'AC-4', title: 'Auditoria de acceso', required: true },
|
|
22
|
+
{ id: 'AC-5', title: 'Alertas de compliance', required: true },
|
|
23
|
+
],
|
|
24
|
+
variables: [
|
|
25
|
+
{
|
|
26
|
+
key: 'ServiceName',
|
|
27
|
+
label: 'Nombre del servicio',
|
|
28
|
+
description: 'Nombre del servicio regulado',
|
|
29
|
+
example: 'FinanceApp',
|
|
30
|
+
required: true,
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
key: 'Regulation',
|
|
34
|
+
label: 'Regulacion aplicable',
|
|
35
|
+
description: 'Regulacion principal a cumplir',
|
|
36
|
+
example: 'PCI-DSS',
|
|
37
|
+
required: false,
|
|
38
|
+
defaultValue: 'regulacion local aplicable',
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
huTemplate: `# HU: Compliance Regulatorio — {{ServiceName}}
|
|
42
|
+
|
|
43
|
+
## Historia de Usuario
|
|
44
|
+
Como responsable de compliance de {{ServiceName}}, quiero generar reportes regulatorios y mantener trazabilidad completa para cumplir con {{Regulation}}.
|
|
45
|
+
|
|
46
|
+
## Criterios de Aceptacion
|
|
47
|
+
|
|
48
|
+
### AC-1: Generacion de reportes
|
|
49
|
+
- [ ] El sistema genera reportes regulatorios en formatos requeridos (PDF, XML, CSV)
|
|
50
|
+
- [ ] Los reportes incluyen periodo, datos agregados y detalle por transaccion
|
|
51
|
+
- [ ] La generacion es bajo demanda y programable (cron)
|
|
52
|
+
- [ ] Los reportes se almacenan con hash de integridad
|
|
53
|
+
|
|
54
|
+
### AC-2: Retencion de datos
|
|
55
|
+
- [ ] Los datos regulados se retienen por el periodo legalmente requerido
|
|
56
|
+
- [ ] La politica de retencion es configurable por tipo de dato
|
|
57
|
+
- [ ] Los datos expirados se eliminan de forma segura con registro de eliminacion
|
|
58
|
+
- [ ] Se puede demostrar la cadena de custodia de cualquier dato
|
|
59
|
+
|
|
60
|
+
### AC-3: Firma digital
|
|
61
|
+
- [ ] Los reportes pueden firmarse digitalmente antes del envio
|
|
62
|
+
- [ ] Se verifica la integridad de reportes firmados al consultarlos
|
|
63
|
+
- [ ] Los certificados de firma se gestionan de forma segura
|
|
64
|
+
|
|
65
|
+
### AC-4: Auditoria de acceso
|
|
66
|
+
- [ ] Todo acceso a datos regulados se registra (quien, cuando, que)
|
|
67
|
+
- [ ] Los registros de acceso son inmutables
|
|
68
|
+
- [ ] Accesos anomalos generan alertas automaticas
|
|
69
|
+
|
|
70
|
+
### AC-5: Alertas de compliance
|
|
71
|
+
- [ ] Se generan alertas cuando un proceso de compliance falla o se retrasa
|
|
72
|
+
- [ ] Las alertas se escalan segun el protocolo definido
|
|
73
|
+
- [ ] Se mantiene registro de alertas y sus resoluciones
|
|
74
|
+
`,
|
|
75
|
+
fichaTecnicaTemplate: `# FICHA TÉCNICA: Compliance — {{ServiceName}}
|
|
76
|
+
|
|
77
|
+
## Archivos Afectados
|
|
78
|
+
- compliance/report-generator
|
|
79
|
+
- compliance/data-retention
|
|
80
|
+
- compliance/digital-signature
|
|
81
|
+
- compliance/access-audit
|
|
82
|
+
- compliance/alerts
|
|
83
|
+
|
|
84
|
+
## Tipos / Entidades
|
|
85
|
+
- \`ComplianceReport\`: id, type, period, format, hash, signedAt
|
|
86
|
+
- \`RetentionPolicy\`: dataType, retentionDays, deleteStrategy
|
|
87
|
+
- \`AccessLog\`: userId, resource, action, timestamp, ip
|
|
88
|
+
|
|
89
|
+
## Riesgos
|
|
90
|
+
- Reporte incorrecto → validacion cruzada con datos fuente
|
|
91
|
+
- Perdida de datos antes del periodo de retencion → backups redundantes
|
|
92
|
+
- Cambios regulatorios → arquitectura extensible para nuevas reglas
|
|
93
|
+
|
|
94
|
+
## Estimacion
|
|
95
|
+
- Dev: 40–80 horas
|
|
96
|
+
- Review: 8–16 horas
|
|
97
|
+
- Dificultad: 4/5
|
|
98
|
+
`,
|
|
99
|
+
progressTemplate: `# PROGRESS: Compliance — {{ServiceName}}
|
|
100
|
+
|
|
101
|
+
## Estado: borrador
|
|
102
|
+
|
|
103
|
+
## Criterios
|
|
104
|
+
- [ ] AC-1: Generacion de reportes
|
|
105
|
+
- [ ] AC-2: Retencion de datos
|
|
106
|
+
- [ ] AC-3: Firma digital
|
|
107
|
+
- [ ] AC-4: Auditoria de acceso
|
|
108
|
+
- [ ] AC-5: Alertas de compliance
|
|
109
|
+
`,
|
|
110
|
+
};
|
|
111
|
+
//# sourceMappingURL=fintech-compliance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fintech-compliance.js","sourceRoot":"","sources":["../../../src/engine/spec-templates/fintech-compliance.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,gEAAgE;AAIhE,mCAAmC;AACnC,MAAM,CAAC,MAAM,2BAA2B,GAAsB;IAC5D,EAAE,EAAE,oBAAoB;IACxB,IAAI,EAAE,oCAAoC;IAC1C,QAAQ,EAAE,UAAU;IACpB,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,0EAA0E;IACvF,IAAI,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,CAAC;IACnE,eAAe,EAAE,GAAG;IACpB,cAAc,EAAE;QACd,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,4CAA4C;KACpD;IACD,QAAQ,EAAE;QACR,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,wBAAwB,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC/D,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC3D,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE;QACvD,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC5D,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC/D;IACD,SAAS,EAAE;QACT;YACE,GAAG,EAAE,aAAa;YAClB,KAAK,EAAE,qBAAqB;YAC5B,WAAW,EAAE,8BAA8B;YAC3C,OAAO,EAAE,YAAY;YACrB,QAAQ,EAAE,IAAI;SACf;QACD;YACE,GAAG,EAAE,YAAY;YACjB,KAAK,EAAE,sBAAsB;YAC7B,WAAW,EAAE,gCAAgC;YAC7C,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,4BAA4B;SAC3C;KACF;IACD,UAAU,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCb;IACC,oBAAoB,EAAE;;;;;;;;;;;;;;;;;;;;;;;CAuBvB;IACC,gBAAgB,EAAE;;;;;;;;;;CAUnB;CACA,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fintech-kyc.d.ts","sourceRoot":"","sources":["../../../src/engine/spec-templates/fintech-kyc.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,yCAAyC;AACzC,eAAO,MAAM,oBAAoB,EAAE,iBAyHlC,CAAC"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
// engine/spec-templates/fintech-kyc.ts — Fintech KYC verification template.
|
|
2
|
+
// AC-04: Templates by industry — fintech vertical (KYC).
|
|
3
|
+
/** Fintech KYC verification template. */
|
|
4
|
+
export const FINTECH_KYC_TEMPLATE = {
|
|
5
|
+
id: 'fintech-kyc',
|
|
6
|
+
name: 'Verificacion de identidad (KYC)',
|
|
7
|
+
category: 'industry',
|
|
8
|
+
subcategory: 'fintech',
|
|
9
|
+
description: 'Flujo de verificacion de identidad con niveles de verificacion, documentos y compliance AML.',
|
|
10
|
+
tags: ['fintech', 'kyc', 'identity', 'compliance', 'aml'],
|
|
11
|
+
complexityScore: 'L',
|
|
12
|
+
estimationBase: {
|
|
13
|
+
hoursMin: 40,
|
|
14
|
+
hoursMax: 80,
|
|
15
|
+
notes: 'Incluye integracion con proveedor de verificacion y flujo multi-nivel',
|
|
16
|
+
},
|
|
17
|
+
criteria: [
|
|
18
|
+
{ id: 'AC-1', title: 'Niveles de verificacion', required: true },
|
|
19
|
+
{ id: 'AC-2', title: 'Carga de documentos', required: true },
|
|
20
|
+
{ id: 'AC-3', title: 'Validacion automatica', required: true },
|
|
21
|
+
{ id: 'AC-4', title: 'Revision manual', required: false },
|
|
22
|
+
{ id: 'AC-5', title: 'Compliance AML', required: true },
|
|
23
|
+
{ id: 'AC-6', title: 'Auditoria', required: true },
|
|
24
|
+
],
|
|
25
|
+
variables: [
|
|
26
|
+
{
|
|
27
|
+
key: 'ServiceName',
|
|
28
|
+
label: 'Nombre del servicio',
|
|
29
|
+
description: 'Nombre del servicio financiero',
|
|
30
|
+
example: 'FinanceApp',
|
|
31
|
+
required: true,
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
key: 'KycLevels',
|
|
35
|
+
label: 'Niveles KYC',
|
|
36
|
+
description: 'Niveles de verificacion soportados',
|
|
37
|
+
example: 'Basico, Intermedio, Avanzado',
|
|
38
|
+
required: false,
|
|
39
|
+
defaultValue: 'Basico, Intermedio, Avanzado',
|
|
40
|
+
},
|
|
41
|
+
],
|
|
42
|
+
huTemplate: `# HU: Verificacion de Identidad (KYC) — {{ServiceName}}
|
|
43
|
+
|
|
44
|
+
## Historia de Usuario
|
|
45
|
+
Como usuario de {{ServiceName}}, quiero verificar mi identidad de forma progresiva para poder acceder a funcionalidades avanzadas del servicio.
|
|
46
|
+
|
|
47
|
+
## Criterios de Aceptacion
|
|
48
|
+
|
|
49
|
+
### AC-1: Niveles de verificacion
|
|
50
|
+
- [ ] El sistema soporta niveles de verificacion: {{KycLevels}}
|
|
51
|
+
- [ ] Cada nivel tiene requisitos documentales claros
|
|
52
|
+
- [ ] El usuario puede ver su nivel actual y los requisitos del siguiente
|
|
53
|
+
- [ ] Las funcionalidades se desbloquean segun el nivel alcanzado
|
|
54
|
+
|
|
55
|
+
### AC-2: Carga de documentos
|
|
56
|
+
- [ ] El usuario puede subir documentos de identidad en formatos imagen y PDF
|
|
57
|
+
- [ ] Los documentos se validan por formato, tamano y legibilidad
|
|
58
|
+
- [ ] Se almacenan cifrados y con acceso restringido
|
|
59
|
+
- [ ] Se genera un recibo de carga para el usuario
|
|
60
|
+
|
|
61
|
+
### AC-3: Validacion automatica
|
|
62
|
+
- [ ] Los documentos pasan por validacion automatica (OCR + verificacion)
|
|
63
|
+
- [ ] El resultado se comunica al usuario en tiempo real o por notificacion
|
|
64
|
+
- [ ] Los documentos rechazados indican el motivo del rechazo
|
|
65
|
+
- [ ] El usuario puede reintentar la verificacion con documentos nuevos
|
|
66
|
+
|
|
67
|
+
### AC-4: Revision manual
|
|
68
|
+
- [ ] Los casos dudosos se escalan a revision manual
|
|
69
|
+
- [ ] El revisor puede aprobar, rechazar o solicitar mas informacion
|
|
70
|
+
- [ ] El historial de decisiones se registra para auditoria
|
|
71
|
+
|
|
72
|
+
### AC-5: Compliance AML
|
|
73
|
+
- [ ] Se verifica contra listas de sanciones y PEP (personas expuestas politicamente)
|
|
74
|
+
- [ ] Las alertas AML se registran y se escalan segun protocolo
|
|
75
|
+
- [ ] La verificacion AML se repite periodicamente para usuarios existentes
|
|
76
|
+
- [ ] Se mantiene registro de todas las verificaciones realizadas
|
|
77
|
+
|
|
78
|
+
### AC-6: Auditoria
|
|
79
|
+
- [ ] Toda accion sobre documentos y verificaciones se registra con timestamp y actor
|
|
80
|
+
- [ ] Los registros de auditoria son inmutables
|
|
81
|
+
- [ ] Se puede generar reporte de auditoria por usuario o periodo
|
|
82
|
+
|
|
83
|
+
## Fuera de Alcance
|
|
84
|
+
- Integracion con proveedores especificos de KYC (configurar en implementacion)
|
|
85
|
+
- Verificacion biometrica (crear spec separada)
|
|
86
|
+
`,
|
|
87
|
+
fichaTecnicaTemplate: `# FICHA TÉCNICA: KYC — {{ServiceName}}
|
|
88
|
+
|
|
89
|
+
## Archivos Afectados
|
|
90
|
+
- kyc/verification-levels
|
|
91
|
+
- kyc/document-upload
|
|
92
|
+
- kyc/automatic-validation
|
|
93
|
+
- kyc/manual-review
|
|
94
|
+
- kyc/aml-check
|
|
95
|
+
- storage/documents (cifrado)
|
|
96
|
+
|
|
97
|
+
## Tipos / Entidades
|
|
98
|
+
- \`KycLevel\`: id, name, requirements[], unlockedFeatures[]
|
|
99
|
+
- \`VerificationDocument\`: id, userId, type, status, uploadedAt
|
|
100
|
+
- \`AmlCheckResult\`: userId, checkDate, sanctionMatch, pepMatch, status
|
|
101
|
+
|
|
102
|
+
## Riesgos
|
|
103
|
+
- Fuga de documentos personales → cifrado obligatorio + acceso restringido
|
|
104
|
+
- Falsos positivos AML → flujo de revision manual requerido
|
|
105
|
+
- Regulacion cambiante → arquitectura extensible para nuevos requisitos
|
|
106
|
+
|
|
107
|
+
## Estimacion
|
|
108
|
+
- Dev: 40–80 horas
|
|
109
|
+
- Review: 8–16 horas
|
|
110
|
+
- Dificultad: 4/5
|
|
111
|
+
`,
|
|
112
|
+
progressTemplate: `# PROGRESS: KYC — {{ServiceName}}
|
|
113
|
+
|
|
114
|
+
## Estado: borrador
|
|
115
|
+
|
|
116
|
+
## Criterios
|
|
117
|
+
- [ ] AC-1: Niveles de verificacion
|
|
118
|
+
- [ ] AC-2: Carga de documentos
|
|
119
|
+
- [ ] AC-3: Validacion automatica
|
|
120
|
+
- [ ] AC-4: Revision manual
|
|
121
|
+
- [ ] AC-5: Compliance AML
|
|
122
|
+
- [ ] AC-6: Auditoria
|
|
123
|
+
`,
|
|
124
|
+
};
|
|
125
|
+
//# sourceMappingURL=fintech-kyc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fintech-kyc.js","sourceRoot":"","sources":["../../../src/engine/spec-templates/fintech-kyc.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,yDAAyD;AAIzD,yCAAyC;AACzC,MAAM,CAAC,MAAM,oBAAoB,GAAsB;IACrD,EAAE,EAAE,aAAa;IACjB,IAAI,EAAE,iCAAiC;IACvC,QAAQ,EAAE,UAAU;IACpB,WAAW,EAAE,SAAS;IACtB,WAAW,EACT,8FAA8F;IAChG,IAAI,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,CAAC;IACzD,eAAe,EAAE,GAAG;IACpB,cAAc,EAAE;QACd,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,uEAAuE;KAC/E;IACD,QAAQ,EAAE;QACR,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,yBAAyB,EAAE,QAAQ,EAAE,IAAI,EAAE;QAChE,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC5D,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC9D,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,EAAE;QACzD,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE;QACvD,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE;KACnD;IACD,SAAS,EAAE;QACT;YACE,GAAG,EAAE,aAAa;YAClB,KAAK,EAAE,qBAAqB;YAC5B,WAAW,EAAE,gCAAgC;YAC7C,OAAO,EAAE,YAAY;YACrB,QAAQ,EAAE,IAAI;SACf;QACD;YACE,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,aAAa;YACpB,WAAW,EAAE,oCAAoC;YACjD,OAAO,EAAE,8BAA8B;YACvC,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,8BAA8B;SAC7C;KACF;IACD,UAAU,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4Cb;IACC,oBAAoB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;CAwBvB;IACC,gBAAgB,EAAE;;;;;;;;;;;CAWnB;CACA,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fintech-transactions.d.ts","sourceRoot":"","sources":["../../../src/engine/spec-templates/fintech-transactions.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,qCAAqC;AACrC,eAAO,MAAM,6BAA6B,EAAE,iBAmH3C,CAAC"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
// engine/spec-templates/fintech-transactions.ts — Fintech transactions template.
|
|
2
|
+
// AC-04: Templates by industry — fintech vertical (transactions).
|
|
3
|
+
/** Fintech transactions template. */
|
|
4
|
+
export const FINTECH_TRANSACTIONS_TEMPLATE = {
|
|
5
|
+
id: 'fintech-transactions',
|
|
6
|
+
name: 'Gestion de transacciones financieras',
|
|
7
|
+
category: 'industry',
|
|
8
|
+
subcategory: 'fintech',
|
|
9
|
+
description: 'Transacciones financieras con idempotencia, reversion, auditoria y limites.',
|
|
10
|
+
tags: ['fintech', 'transactions', 'payments', 'idempotency', 'audit'],
|
|
11
|
+
complexityScore: 'XL',
|
|
12
|
+
estimationBase: {
|
|
13
|
+
hoursMin: 80,
|
|
14
|
+
hoursMax: 160,
|
|
15
|
+
notes: 'Requiere idempotencia estricta y auditoria completa',
|
|
16
|
+
},
|
|
17
|
+
criteria: [
|
|
18
|
+
{ id: 'AC-1', title: 'Creacion de transacciones', required: true },
|
|
19
|
+
{ id: 'AC-2', title: 'Idempotencia', required: true },
|
|
20
|
+
{ id: 'AC-3', title: 'Reversion', required: true },
|
|
21
|
+
{ id: 'AC-4', title: 'Limites y controles', required: true },
|
|
22
|
+
{ id: 'AC-5', title: 'Auditoria', required: true },
|
|
23
|
+
{ id: 'AC-6', title: 'Conciliacion', required: false },
|
|
24
|
+
],
|
|
25
|
+
variables: [
|
|
26
|
+
{
|
|
27
|
+
key: 'ServiceName',
|
|
28
|
+
label: 'Nombre del servicio',
|
|
29
|
+
description: 'Nombre del servicio financiero',
|
|
30
|
+
example: 'FinanceApp',
|
|
31
|
+
required: true,
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
key: 'Currency',
|
|
35
|
+
label: 'Moneda principal',
|
|
36
|
+
description: 'Moneda principal del sistema',
|
|
37
|
+
example: 'USD',
|
|
38
|
+
required: false,
|
|
39
|
+
defaultValue: 'USD',
|
|
40
|
+
},
|
|
41
|
+
],
|
|
42
|
+
huTemplate: `# HU: Transacciones Financieras — {{ServiceName}}
|
|
43
|
+
|
|
44
|
+
## Historia de Usuario
|
|
45
|
+
Como usuario de {{ServiceName}}, quiero realizar transacciones financieras de forma segura y rastreable.
|
|
46
|
+
|
|
47
|
+
## Criterios de Aceptacion
|
|
48
|
+
|
|
49
|
+
### AC-1: Creacion de transacciones
|
|
50
|
+
- [ ] Se puede crear una transaccion con monto, origen, destino y concepto
|
|
51
|
+
- [ ] Cada transaccion recibe un ID unico e inmutable
|
|
52
|
+
- [ ] Los montos se manejan en la menor unidad (centavos) para evitar errores de precision
|
|
53
|
+
- [ ] La moneda ({{Currency}}) se registra explicitamente en cada transaccion
|
|
54
|
+
|
|
55
|
+
### AC-2: Idempotencia
|
|
56
|
+
- [ ] Cada solicitud de transaccion incluye una clave de idempotencia
|
|
57
|
+
- [ ] Solicitudes duplicadas retornan el resultado original sin ejecutar de nuevo
|
|
58
|
+
- [ ] Las claves de idempotencia expiran despues de un periodo configurable
|
|
59
|
+
|
|
60
|
+
### AC-3: Reversion
|
|
61
|
+
- [ ] Las transacciones pueden revertirse dentro del periodo permitido
|
|
62
|
+
- [ ] La reversion genera una contra-transaccion (no elimina la original)
|
|
63
|
+
- [ ] Las transacciones revertidas muestran estado "revertida" con referencia cruzada
|
|
64
|
+
|
|
65
|
+
### AC-4: Limites y controles
|
|
66
|
+
- [ ] Limites por monto individual, diario y mensual por usuario
|
|
67
|
+
- [ ] Transacciones que excedan limites requieren aprobacion adicional
|
|
68
|
+
- [ ] Los limites son configurables por nivel de usuario/cuenta
|
|
69
|
+
|
|
70
|
+
### AC-5: Auditoria
|
|
71
|
+
- [ ] Toda transaccion registra timestamp, actor, IP y dispositivo
|
|
72
|
+
- [ ] Los registros de auditoria son inmutables (append-only)
|
|
73
|
+
- [ ] Se puede consultar el historial completo de una transaccion
|
|
74
|
+
|
|
75
|
+
### AC-6: Conciliacion
|
|
76
|
+
- [ ] Proceso de conciliacion periodica entre sistema interno y proveedores externos
|
|
77
|
+
- [ ] Las discrepancias generan alertas automaticas
|
|
78
|
+
- [ ] Reporte de conciliacion exportable
|
|
79
|
+
|
|
80
|
+
## Fuera de Alcance
|
|
81
|
+
- Integracion con proveedores de pago especificos (ver template third-party-integration)
|
|
82
|
+
`,
|
|
83
|
+
fichaTecnicaTemplate: `# FICHA TÉCNICA: Transacciones — {{ServiceName}}
|
|
84
|
+
|
|
85
|
+
## Archivos Afectados
|
|
86
|
+
- transactions/create
|
|
87
|
+
- transactions/reverse
|
|
88
|
+
- transactions/limits
|
|
89
|
+
- transactions/audit-log
|
|
90
|
+
- transactions/reconciliation
|
|
91
|
+
|
|
92
|
+
## Tipos / Entidades
|
|
93
|
+
- \`Transaction\`: id, amount, currency, from, to, status, idempotencyKey, createdAt
|
|
94
|
+
- \`TransactionLimit\`: userId, type (daily/monthly/single), maxAmount
|
|
95
|
+
- \`AuditEntry\`: transactionId, action, actor, ip, timestamp
|
|
96
|
+
|
|
97
|
+
## Riesgos
|
|
98
|
+
- Doble cargo sin idempotencia → claves de idempotencia obligatorias
|
|
99
|
+
- Precision de montos → usar enteros (centavos), nunca floats
|
|
100
|
+
- Reversion fuera de plazo → controles temporales estrictos
|
|
101
|
+
|
|
102
|
+
## Estimacion
|
|
103
|
+
- Dev: 80–160 horas
|
|
104
|
+
- Review: 16–32 horas
|
|
105
|
+
- Dificultad: 5/5
|
|
106
|
+
`,
|
|
107
|
+
progressTemplate: `# PROGRESS: Transacciones — {{ServiceName}}
|
|
108
|
+
|
|
109
|
+
## Estado: borrador
|
|
110
|
+
|
|
111
|
+
## Criterios
|
|
112
|
+
- [ ] AC-1: Creacion de transacciones
|
|
113
|
+
- [ ] AC-2: Idempotencia
|
|
114
|
+
- [ ] AC-3: Reversion
|
|
115
|
+
- [ ] AC-4: Limites y controles
|
|
116
|
+
- [ ] AC-5: Auditoria
|
|
117
|
+
- [ ] AC-6: Conciliacion
|
|
118
|
+
`,
|
|
119
|
+
};
|
|
120
|
+
//# sourceMappingURL=fintech-transactions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fintech-transactions.js","sourceRoot":"","sources":["../../../src/engine/spec-templates/fintech-transactions.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,kEAAkE;AAIlE,qCAAqC;AACrC,MAAM,CAAC,MAAM,6BAA6B,GAAsB;IAC9D,EAAE,EAAE,sBAAsB;IAC1B,IAAI,EAAE,sCAAsC;IAC5C,QAAQ,EAAE,UAAU;IACpB,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,6EAA6E;IAC1F,IAAI,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,CAAC;IACrE,eAAe,EAAE,IAAI;IACrB,cAAc,EAAE;QACd,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,GAAG;QACb,KAAK,EAAE,qDAAqD;KAC7D;IACD,QAAQ,EAAE;QACR,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,2BAA2B,EAAE,QAAQ,EAAE,IAAI,EAAE;QAClE,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE;QACrD,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE;QAClD,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC5D,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE;QAClD,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE;KACvD;IACD,SAAS,EAAE;QACT;YACE,GAAG,EAAE,aAAa;YAClB,KAAK,EAAE,qBAAqB;YAC5B,WAAW,EAAE,gCAAgC;YAC7C,OAAO,EAAE,YAAY;YACrB,QAAQ,EAAE,IAAI;SACf;QACD;YACE,GAAG,EAAE,UAAU;YACf,KAAK,EAAE,kBAAkB;YACzB,WAAW,EAAE,8BAA8B;YAC3C,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,KAAK;SACpB;KACF;IACD,UAAU,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwCb;IACC,oBAAoB,EAAE;;;;;;;;;;;;;;;;;;;;;;;CAuBvB;IACC,gBAAgB,EAAE;;;;;;;;;;;CAWnB;CACA,CAAC"}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export
|
|
4
|
-
/** Fintech transactions template. */
|
|
5
|
-
export declare const FINTECH_TRANSACTIONS_TEMPLATE: SpecTemplateEntry;
|
|
6
|
-
/** Fintech compliance template. */
|
|
7
|
-
export declare const FINTECH_COMPLIANCE_TEMPLATE: SpecTemplateEntry;
|
|
1
|
+
export { FINTECH_KYC_TEMPLATE } from './fintech-kyc.js';
|
|
2
|
+
export { FINTECH_TRANSACTIONS_TEMPLATE } from './fintech-transactions.js';
|
|
3
|
+
export { FINTECH_COMPLIANCE_TEMPLATE } from './fintech-compliance.js';
|
|
8
4
|
//# sourceMappingURL=templates-industry-fintech.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates-industry-fintech.d.ts","sourceRoot":"","sources":["../../../src/engine/spec-templates/templates-industry-fintech.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"templates-industry-fintech.d.ts","sourceRoot":"","sources":["../../../src/engine/spec-templates/templates-industry-fintech.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC"}
|