@ai-pip/core 0.3.0 → 0.5.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.
Files changed (153) hide show
  1. package/CHANGELOG.md +74 -1
  2. package/README.md +52 -1037
  3. package/dist/AAL/index.d.ts +4 -4
  4. package/dist/AAL/index.d.ts.map +1 -1
  5. package/dist/AAL/index.js +2 -2
  6. package/dist/AAL/index.js.map +1 -1
  7. package/dist/AAL/process/buildDecisionReason.d.ts.map +1 -1
  8. package/dist/AAL/process/buildDecisionReason.js +2 -4
  9. package/dist/AAL/process/buildDecisionReason.js.map +1 -1
  10. package/dist/AAL/process/buildRemediationPlan.d.ts +22 -0
  11. package/dist/AAL/process/buildRemediationPlan.d.ts.map +1 -0
  12. package/dist/AAL/process/buildRemediationPlan.js +81 -0
  13. package/dist/AAL/process/buildRemediationPlan.js.map +1 -0
  14. package/dist/AAL/process/index.d.ts +2 -3
  15. package/dist/AAL/process/index.d.ts.map +1 -1
  16. package/dist/AAL/process/index.js +2 -2
  17. package/dist/AAL/process/index.js.map +1 -1
  18. package/dist/AAL/process/resolveAgentAction.d.ts.map +1 -1
  19. package/dist/AAL/process/resolveAgentAction.js +3 -14
  20. package/dist/AAL/process/resolveAgentAction.js.map +1 -1
  21. package/dist/AAL/process/validatePolicy.d.ts +20 -0
  22. package/dist/AAL/process/validatePolicy.d.ts.map +1 -0
  23. package/dist/AAL/process/validatePolicy.js +40 -0
  24. package/dist/AAL/process/validatePolicy.js.map +1 -0
  25. package/dist/AAL/types.d.ts +18 -35
  26. package/dist/AAL/types.d.ts.map +1 -1
  27. package/dist/index.d.ts +6 -6
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +4 -4
  30. package/dist/index.js.map +1 -1
  31. package/dist/isl/detect/detect.js +19 -19
  32. package/dist/isl/detect/detect.js.map +1 -1
  33. package/dist/isl/index.d.ts +2 -0
  34. package/dist/isl/index.d.ts.map +1 -1
  35. package/dist/isl/index.js +2 -0
  36. package/dist/isl/index.js.map +1 -1
  37. package/dist/isl/process/buildISLResult.d.ts +3 -1
  38. package/dist/isl/process/buildISLResult.d.ts.map +1 -1
  39. package/dist/isl/process/buildISLResult.js +3 -1
  40. package/dist/isl/process/buildISLResult.js.map +1 -1
  41. package/dist/isl/sanitize.d.ts.map +1 -1
  42. package/dist/isl/sanitize.js +15 -3
  43. package/dist/isl/sanitize.js.map +1 -1
  44. package/dist/isl/tags/index.d.ts +19 -0
  45. package/dist/isl/tags/index.d.ts.map +1 -0
  46. package/dist/isl/tags/index.js +17 -0
  47. package/dist/isl/tags/index.js.map +1 -0
  48. package/dist/isl/tags/namespace.d.ts +18 -0
  49. package/dist/isl/tags/namespace.d.ts.map +1 -0
  50. package/dist/isl/tags/namespace.js +18 -0
  51. package/dist/isl/tags/namespace.js.map +1 -0
  52. package/dist/isl/tags/serializer.d.ts +39 -0
  53. package/dist/isl/tags/serializer.d.ts.map +1 -0
  54. package/dist/isl/tags/serializer.js +45 -0
  55. package/dist/isl/tags/serializer.js.map +1 -0
  56. package/dist/isl/tags/tag-registry.d.ts +15 -0
  57. package/dist/isl/tags/tag-registry.d.ts.map +1 -0
  58. package/dist/isl/tags/tag-registry.js +17 -0
  59. package/dist/isl/tags/tag-registry.js.map +1 -0
  60. package/dist/isl/tags/threat-tag-type.d.ts +13 -0
  61. package/dist/isl/tags/threat-tag-type.d.ts.map +1 -0
  62. package/dist/isl/tags/threat-tag-type.js +9 -0
  63. package/dist/isl/tags/threat-tag-type.js.map +1 -0
  64. package/dist/isl/tags/threat-tag.d.ts +32 -0
  65. package/dist/isl/tags/threat-tag.d.ts.map +1 -0
  66. package/dist/isl/tags/threat-tag.js +43 -0
  67. package/dist/isl/tags/threat-tag.js.map +1 -0
  68. package/dist/isl/types.d.ts +13 -0
  69. package/dist/isl/types.d.ts.map +1 -1
  70. package/dist/shared/audit.d.ts +16 -18
  71. package/dist/shared/audit.d.ts.map +1 -1
  72. package/dist/shared/audit.js +27 -31
  73. package/dist/shared/audit.js.map +1 -1
  74. package/dist/shared/envelope/envelope.d.ts +23 -0
  75. package/dist/shared/envelope/envelope.d.ts.map +1 -0
  76. package/dist/{cpe → shared/envelope}/envelope.js +9 -21
  77. package/dist/shared/envelope/envelope.js.map +1 -0
  78. package/dist/{cpe → shared/envelope}/exceptions/EnvelopeError.d.ts +1 -1
  79. package/dist/shared/envelope/exceptions/EnvelopeError.d.ts.map +1 -0
  80. package/dist/{cpe → shared/envelope}/exceptions/EnvelopeError.js +1 -1
  81. package/dist/shared/envelope/exceptions/EnvelopeError.js.map +1 -0
  82. package/dist/shared/envelope/exceptions/index.d.ts +2 -0
  83. package/dist/shared/envelope/exceptions/index.d.ts.map +1 -0
  84. package/dist/shared/envelope/exceptions/index.js +2 -0
  85. package/dist/shared/envelope/exceptions/index.js.map +1 -0
  86. package/dist/shared/envelope/index.d.ts +18 -0
  87. package/dist/shared/envelope/index.d.ts.map +1 -0
  88. package/dist/shared/envelope/index.js +15 -0
  89. package/dist/shared/envelope/index.js.map +1 -0
  90. package/dist/shared/envelope/types.d.ts +45 -0
  91. package/dist/shared/envelope/types.d.ts.map +1 -0
  92. package/dist/shared/envelope/types.js +10 -0
  93. package/dist/shared/envelope/types.js.map +1 -0
  94. package/dist/shared/envelope/value-objects/Metadata.d.ts +27 -0
  95. package/dist/shared/envelope/value-objects/Metadata.d.ts.map +1 -0
  96. package/dist/{cpe → shared/envelope}/value-objects/Metadata.js +11 -19
  97. package/dist/shared/envelope/value-objects/Metadata.js.map +1 -0
  98. package/dist/shared/envelope/value-objects/Nonce.d.ts +26 -0
  99. package/dist/shared/envelope/value-objects/Nonce.d.ts.map +1 -0
  100. package/dist/{cpe → shared/envelope}/value-objects/Nonce.js +11 -17
  101. package/dist/shared/envelope/value-objects/Nonce.js.map +1 -0
  102. package/dist/shared/envelope/value-objects/Signature.d.ts +28 -0
  103. package/dist/shared/envelope/value-objects/Signature.d.ts.map +1 -0
  104. package/dist/shared/envelope/value-objects/Signature.js +50 -0
  105. package/dist/shared/envelope/value-objects/Signature.js.map +1 -0
  106. package/dist/{cpe → shared/envelope}/value-objects/index.d.ts +1 -1
  107. package/dist/shared/envelope/value-objects/index.d.ts.map +1 -0
  108. package/dist/{cpe → shared/envelope}/value-objects/index.js +1 -1
  109. package/dist/shared/envelope/value-objects/index.js.map +1 -0
  110. package/dist/shared/index.d.ts +1 -1
  111. package/dist/shared/index.d.ts.map +1 -1
  112. package/package.json +8 -6
  113. package/dist/AAL/process/applyRemovalPlan.d.ts +0 -21
  114. package/dist/AAL/process/applyRemovalPlan.d.ts.map +0 -1
  115. package/dist/AAL/process/applyRemovalPlan.js +0 -150
  116. package/dist/AAL/process/applyRemovalPlan.js.map +0 -1
  117. package/dist/AAL/process/buildRemovalPlan.d.ts +0 -39
  118. package/dist/AAL/process/buildRemovalPlan.d.ts.map +0 -1
  119. package/dist/AAL/process/buildRemovalPlan.js +0 -104
  120. package/dist/AAL/process/buildRemovalPlan.js.map +0 -1
  121. package/dist/cpe/envelope.d.ts +0 -34
  122. package/dist/cpe/envelope.d.ts.map +0 -1
  123. package/dist/cpe/envelope.js.map +0 -1
  124. package/dist/cpe/exceptions/EnvelopeError.d.ts.map +0 -1
  125. package/dist/cpe/exceptions/EnvelopeError.js.map +0 -1
  126. package/dist/cpe/exceptions/index.d.ts +0 -5
  127. package/dist/cpe/exceptions/index.d.ts.map +0 -1
  128. package/dist/cpe/exceptions/index.js +0 -5
  129. package/dist/cpe/exceptions/index.js.map +0 -1
  130. package/dist/cpe/index.d.ts +0 -24
  131. package/dist/cpe/index.d.ts.map +0 -1
  132. package/dist/cpe/index.js +0 -26
  133. package/dist/cpe/index.js.map +0 -1
  134. package/dist/cpe/types.d.ts +0 -58
  135. package/dist/cpe/types.d.ts.map +0 -1
  136. package/dist/cpe/types.js +0 -5
  137. package/dist/cpe/types.js.map +0 -1
  138. package/dist/cpe/utils.d.ts +0 -38
  139. package/dist/cpe/utils.d.ts.map +0 -1
  140. package/dist/cpe/utils.js +0 -47
  141. package/dist/cpe/utils.js.map +0 -1
  142. package/dist/cpe/value-objects/Metadata.d.ts +0 -32
  143. package/dist/cpe/value-objects/Metadata.d.ts.map +0 -1
  144. package/dist/cpe/value-objects/Metadata.js.map +0 -1
  145. package/dist/cpe/value-objects/Nonce.d.ts +0 -33
  146. package/dist/cpe/value-objects/Nonce.d.ts.map +0 -1
  147. package/dist/cpe/value-objects/Nonce.js.map +0 -1
  148. package/dist/cpe/value-objects/Signature.d.ts +0 -39
  149. package/dist/cpe/value-objects/Signature.d.ts.map +0 -1
  150. package/dist/cpe/value-objects/Signature.js +0 -60
  151. package/dist/cpe/value-objects/Signature.js.map +0 -1
  152. package/dist/cpe/value-objects/index.d.ts.map +0 -1
  153. package/dist/cpe/value-objects/index.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"buildRemovalPlan.d.ts","sourceRoot":"","sources":["../../../src/AAL/process/buildRemovalPlan.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAGnD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,oBAAoB,EAAE,SAAS,kBAAkB,EAAE,CAAA;IAC5D,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;CACjC;AA0CD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,WAAW,GAClB,WAAW,CAoBb;AAWD;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,WAAW,GAClB,WAAW,CAmBb"}
@@ -1,104 +0,0 @@
1
- /**
2
- * buildRemovalPlan - Builds a plan for instruction removal
3
- *
4
- * @remarks
5
- * Two entry points:
6
- * - buildRemovalPlan(islSignal, policy): from signal only; no segmentId (descriptive).
7
- * - buildRemovalPlanFromResult(islResult, policy): from result; includes segmentId for applyRemovalPlan.
8
- */
9
- function mapDetectionToRemovedInstruction(detection, segmentId) {
10
- return {
11
- type: detection.pattern_type,
12
- pattern: detection.matched_pattern,
13
- position: detection.position,
14
- description: `Detected ${detection.pattern_type} pattern with confidence ${detection.confidence.toFixed(3)}`,
15
- ...(segmentId != null && { segmentId })
16
- };
17
- }
18
- const EMPTY_PLAN_DISABLED = Object.freeze({
19
- instructionsToRemove: Object.freeze([]),
20
- shouldRemove: false,
21
- removalEnabled: false
22
- });
23
- const EMPTY_PLAN_NO_THREATS = Object.freeze({
24
- instructionsToRemove: Object.freeze([]),
25
- shouldRemove: false,
26
- removalEnabled: true
27
- });
28
- function assertPolicyForRemoval(policy) {
29
- if (policy == null || typeof policy !== 'object') {
30
- throw new TypeError('AAL buildRemovalPlan: policy must be a non-null object');
31
- }
32
- const r = policy.removal;
33
- if (r == null || typeof r !== 'object' || typeof r.enabled !== 'boolean') {
34
- throw new TypeError('AAL buildRemovalPlan: policy.removal.enabled must be a boolean');
35
- }
36
- }
37
- function assertISLSignalForRemoval(signal) {
38
- if (signal == null || typeof signal !== 'object') {
39
- throw new TypeError('AAL buildRemovalPlan: islSignal must be a non-null object');
40
- }
41
- }
42
- /**
43
- * Builds a plan for instruction removal from ISL signal (no segment ids).
44
- * Use when you only have the signal; plan is descriptive. For actionable removal use buildRemovalPlanFromResult.
45
- *
46
- * @param islSignal - ISL signal with detections
47
- * @param policy - Agent policy
48
- * @returns RemovalPlan with instructions to remove (no segmentId)
49
- */
50
- export function buildRemovalPlan(islSignal, policy) {
51
- assertPolicyForRemoval(policy);
52
- assertISLSignalForRemoval(islSignal);
53
- if (!policy.removal.enabled)
54
- return EMPTY_PLAN_DISABLED;
55
- if (!islSignal.hasThreats)
56
- return EMPTY_PLAN_NO_THREATS;
57
- const detections = islSignal.piDetection?.detections;
58
- if (!Array.isArray(detections) || detections.length === 0) {
59
- return EMPTY_PLAN_NO_THREATS;
60
- }
61
- const instructionsToRemove = detections.map((d) => mapDetectionToRemovedInstruction(d));
62
- return {
63
- instructionsToRemove: Object.freeze(instructionsToRemove),
64
- shouldRemove: instructionsToRemove.length > 0,
65
- removalEnabled: true
66
- };
67
- }
68
- function assertISLResultForRemoval(islResult) {
69
- if (islResult == null || typeof islResult !== 'object') {
70
- throw new TypeError('AAL buildRemovalPlanFromResult: islResult must be a non-null object');
71
- }
72
- if (!Array.isArray(islResult.segments)) {
73
- throw new TypeError('AAL buildRemovalPlanFromResult: islResult.segments must be an array');
74
- }
75
- }
76
- /**
77
- * Builds a plan for instruction removal from ISL result (with segment ids).
78
- * Use with applyRemovalPlan to produce content with malicious ranges removed.
79
- *
80
- * @param islResult - ISL result with segments and per-segment piDetection
81
- * @param policy - Agent policy
82
- * @returns RemovalPlan with instructions to remove (segmentId set per instruction)
83
- */
84
- export function buildRemovalPlanFromResult(islResult, policy) {
85
- assertPolicyForRemoval(policy);
86
- assertISLResultForRemoval(islResult);
87
- if (!policy.removal.enabled)
88
- return EMPTY_PLAN_DISABLED;
89
- const instructionsToRemove = [];
90
- for (const segment of islResult.segments) {
91
- const detections = segment.piDetection?.detections;
92
- if (!Array.isArray(detections) || detections.length === 0)
93
- continue;
94
- for (const d of detections) {
95
- instructionsToRemove.push(mapDetectionToRemovedInstruction(d, segment.id));
96
- }
97
- }
98
- return {
99
- instructionsToRemove: Object.freeze(instructionsToRemove),
100
- shouldRemove: instructionsToRemove.length > 0,
101
- removalEnabled: true
102
- };
103
- }
104
- //# sourceMappingURL=buildRemovalPlan.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"buildRemovalPlan.js","sourceRoot":"","sources":["../../../src/AAL/process/buildRemovalPlan.ts"],"names":[],"mappings":"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"}
@@ -1,34 +0,0 @@
1
- /**
2
- * Genera el envoltorio criptográfico (CPEEvelope) - función pura principal de CPE
3
- *
4
- * @remarks
5
- * Esta es la función principal de CPE. Genera un envoltorio criptográfico
6
- * que garantiza la integridad y autenticidad del prompt procesado.
7
- *
8
- * **Funciones:**
9
- * - Genera metadata de seguridad (timestamp, nonce, versión)
10
- * - Firma criptográficamente el contenido con HMAC-SHA256
11
- * - Encapsula el contenido sanitizado con metadata
12
- * - Preserva el linaje completo para auditoría
13
- *
14
- * @param islResult - Resultado de ISL con contenido sanitizado
15
- * @param secretKey - Clave secreta para HMAC (debe ser proporcionada por el SDK)
16
- * @returns CPEResult con el envelope criptográfico
17
- *
18
- * @throws {EnvelopeError} Si la generación del envelope falla
19
- *
20
- * @example
21
- * ```typescript
22
- * const cpeResult = envelope(islResult, secretKey)
23
- *
24
- * // cpeResult.envelope contiene:
25
- * // - content: contenido sanitizado serializado
26
- * // - signature: firma HMAC-SHA256
27
- * // - metadata: timestamp, nonce, versión
28
- * // - lineage: linaje completo
29
- * ```
30
- */
31
- import type { ISLResult } from '../isl/types.js';
32
- import type { CPEResult } from './types.js';
33
- export declare function envelope(islResult: ISLResult, secretKey: string): CPEResult;
34
- //# sourceMappingURL=envelope.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/cpe/envelope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,EAAc,SAAS,EAAE,MAAM,YAAY,CAAA;AAUvD,wBAAgB,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,CAwE3E"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/cpe/envelope.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"EnvelopeError.d.ts","sourceRoot":"","sources":["../../../src/cpe/exceptions/EnvelopeError.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,aAAc,SAAQ,KAAK;aACO,KAAK,CAAC,EAAE,KAAK;gBAA9C,OAAO,EAAE,MAAM,EAAkB,KAAK,CAAC,EAAE,KAAK,YAAA;CAK3D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"EnvelopeError.js","sourceRoot":"","sources":["../../../src/cpe/exceptions/EnvelopeError.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;IACO;IAA7C,YAAY,OAAe,EAAkB,KAAa;QACxD,KAAK,CAAC,OAAO,CAAC,CAAA;QAD6B,UAAK,GAAL,KAAK,CAAQ;QAExD,IAAI,CAAC,IAAI,GAAG,eAAe,CAAA;QAC3B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;IACtD,CAAC;CACF"}
@@ -1,5 +0,0 @@
1
- /**
2
- * CPE Exceptions - Exports
3
- */
4
- export { EnvelopeError } from './EnvelopeError.js';
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cpe/exceptions/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA"}
@@ -1,5 +0,0 @@
1
- /**
2
- * CPE Exceptions - Exports
3
- */
4
- export { EnvelopeError } from './EnvelopeError.js';
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cpe/exceptions/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA"}
@@ -1,24 +0,0 @@
1
- /**
2
- * CPE (Cryptographic Prompt Envelope) - Core Semántico
3
- *
4
- * @remarks
5
- * Este es el core semántico de CPE. Solo contiene:
6
- * - Funciones puras (sin estado)
7
- * - Value objects inmutables
8
- * - Tipos y excepciones
9
- *
10
- * **Funciones principales:**
11
- * - Generación de metadata de seguridad (timestamp, nonce, versión)
12
- * - Firma criptográfica HMAC-SHA256
13
- * - Construcción del envelope criptográfico
14
- * - Preservación del linaje completo
15
- */
16
- export { envelope } from './envelope.js';
17
- export { createNonce, isValidNonce, equalsNonce } from './value-objects/Nonce.js';
18
- export type { Nonce } from './value-objects/Nonce.js';
19
- export { createMetadata, isValidMetadata, CURRENT_PROTOCOL_VERSION } from './value-objects/Metadata.js';
20
- export { createSignature } from './value-objects/Signature.js';
21
- export type { SignatureVO } from './value-objects/Signature.js';
22
- export { EnvelopeError } from './exceptions/EnvelopeError.js';
23
- export type { ProtocolVersion, Timestamp, NonceValue, SignatureAlgorithm, Signature, CPEMetadata, CPEEvelope, CPEResult } from './types.js';
24
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cpe/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAGxC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACjF,YAAY,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAA;AACvG,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,YAAY,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAG/D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAG7D,YAAY,EACV,eAAe,EACf,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,SAAS,EACT,WAAW,EACX,UAAU,EACV,SAAS,EACV,MAAM,YAAY,CAAA"}
package/dist/cpe/index.js DELETED
@@ -1,26 +0,0 @@
1
- /**
2
- * CPE (Cryptographic Prompt Envelope) - Core Semántico
3
- *
4
- * @remarks
5
- * Este es el core semántico de CPE. Solo contiene:
6
- * - Funciones puras (sin estado)
7
- * - Value objects inmutables
8
- * - Tipos y excepciones
9
- *
10
- * **Funciones principales:**
11
- * - Generación de metadata de seguridad (timestamp, nonce, versión)
12
- * - Firma criptográfica HMAC-SHA256
13
- * - Construcción del envelope criptográfico
14
- * - Preservación del linaje completo
15
- */
16
- // Funciones puras principales
17
- export { envelope } from './envelope.js';
18
- // Value objects
19
- export { createNonce, isValidNonce, equalsNonce } from './value-objects/Nonce.js';
20
- export { createMetadata, isValidMetadata, CURRENT_PROTOCOL_VERSION } from './value-objects/Metadata.js';
21
- export { createSignature } from './value-objects/Signature.js';
22
- // Exceptions
23
- export { EnvelopeError } from './exceptions/EnvelopeError.js';
24
- // Serialización y verificación NO son core - van al SDK
25
- // El core solo define la estructura del envelope, no implementa serialización
26
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cpe/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,8BAA8B;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,gBAAgB;AAChB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEjF,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAA;AACvG,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAG9D,aAAa;AACb,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAc7D,wDAAwD;AACxD,8EAA8E"}
@@ -1,58 +0,0 @@
1
- /**
2
- * Types for CPE (Cryptographic Prompt Envelope) - Core Semántico
3
- */
4
- import type { LineageEntry } from '../csl/value-objects/index.js';
5
- /**
6
- * ProtocolVersion - Versión del protocolo AI-PIP
7
- */
8
- export type ProtocolVersion = string;
9
- /**
10
- * Timestamp - Timestamp Unix en milisegundos
11
- */
12
- export type Timestamp = number;
13
- /**
14
- * NonceValue - Valor único para prevenir ataques de replay (string)
15
- */
16
- export type NonceValue = string;
17
- /**
18
- * SignatureAlgorithm - Algoritmo de firma criptográfica
19
- */
20
- export type SignatureAlgorithm = 'HMAC-SHA256';
21
- /**
22
- * Signature - Firma criptográfica del envelope
23
- */
24
- export type Signature = string;
25
- /**
26
- * CPEMetadata - Metadata de seguridad del envelope
27
- * Según especificación: timestamp, nonce, protocolVersion, previousSignatures opcionales
28
- */
29
- export interface CPEMetadata {
30
- readonly timestamp: Timestamp;
31
- readonly nonce: NonceValue;
32
- readonly protocolVersion: ProtocolVersion;
33
- readonly previousSignatures?: {
34
- readonly csl?: string | undefined;
35
- readonly isl?: string | undefined;
36
- } | undefined;
37
- }
38
- /**
39
- * CPEEvelope - Envoltorio criptográfico completo
40
- * Según especificación: payload, metadata, signature (value + algorithm), lineage
41
- */
42
- export interface CPEEvelope {
43
- readonly payload: unknown;
44
- readonly metadata: CPEMetadata;
45
- readonly signature: {
46
- readonly value: string;
47
- readonly algorithm: string;
48
- };
49
- readonly lineage: readonly LineageEntry[];
50
- }
51
- /**
52
- * CPEResult - Resultado de la generación del envelope
53
- */
54
- export interface CPEResult {
55
- readonly envelope: CPEEvelope;
56
- readonly processingTimeMs?: number;
57
- }
58
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cpe/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAEjE;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAA;AAEpC;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAE9B;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAA;AAE/B;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,aAAa,CAAA;AAE9C;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAE9B;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;IAC1B,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAA;IACzC,QAAQ,CAAC,kBAAkB,CAAC,EAAE;QAC5B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAClC,GAAG,SAAS,CAAA;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAA;IAC9B,QAAQ,CAAC,SAAS,EAAE;QAClB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;QACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;KAC3B,CAAA;IACD,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAA;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAA;IAC7B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CACnC"}
package/dist/cpe/types.js DELETED
@@ -1,5 +0,0 @@
1
- /**
2
- * Types for CPE (Cryptographic Prompt Envelope) - Core Semántico
3
- */
4
- export {};
5
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/cpe/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,38 +0,0 @@
1
- /**
2
- * Utilidades puras para CPE
3
- */
4
- /**
5
- * Serializa el contenido sanitizado de ISL para firma
6
- *
7
- * @param segments - Segmentos sanitizados
8
- * @returns Contenido serializado
9
- */
10
- export declare function serializeContent(segments: readonly {
11
- readonly sanitizedContent: string;
12
- }[]): string;
13
- /**
14
- * Serializa metadata para firma
15
- *
16
- * @param metadata - Metadata a serializar
17
- * @returns Metadata serializada
18
- */
19
- export declare function serializeMetadata(metadata: {
20
- readonly timestamp: number;
21
- readonly nonce: string;
22
- readonly protocolVersion: string;
23
- readonly previousSignatures?: {
24
- readonly csl?: string | undefined;
25
- readonly isl?: string | undefined;
26
- } | undefined;
27
- }): string;
28
- /**
29
- * Genera el contenido completo para firma
30
- * Según spec: contenido procesado + metadata + identificador del algoritmo
31
- *
32
- * @param content - Contenido serializado (payload semántico)
33
- * @param metadata - Metadata serializada
34
- * @param algorithm - Identificador del algoritmo de firma
35
- * @returns Contenido completo para firma
36
- */
37
- export declare function generateSignableContent(content: string, metadata: string, algorithm: string): string;
38
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/cpe/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,SAAS;IAAE,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,MAAM,CAInG;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE;IAC1C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,kBAAkB,CAAC,EAAE;QAC5B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAClC,GAAG,SAAS,CAAA;CACd,GAAG,MAAM,CAgBT;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,MAAM,CAER"}
package/dist/cpe/utils.js DELETED
@@ -1,47 +0,0 @@
1
- /**
2
- * Utilidades puras para CPE
3
- */
4
- /**
5
- * Serializa el contenido sanitizado de ISL para firma
6
- *
7
- * @param segments - Segmentos sanitizados
8
- * @returns Contenido serializado
9
- */
10
- export function serializeContent(segments) {
11
- return segments
12
- .map((segment, index) => `[${index}]:${segment.sanitizedContent}`)
13
- .join('\n');
14
- }
15
- /**
16
- * Serializa metadata para firma
17
- *
18
- * @param metadata - Metadata a serializar
19
- * @returns Metadata serializada
20
- */
21
- export function serializeMetadata(metadata) {
22
- const parts = [
23
- `timestamp:${metadata.timestamp}`,
24
- `nonce:${metadata.nonce}`,
25
- `version:${metadata.protocolVersion}`,
26
- ];
27
- if (metadata.previousSignatures?.csl) {
28
- parts.push(`csl:${metadata.previousSignatures.csl}`);
29
- }
30
- if (metadata.previousSignatures?.isl) {
31
- parts.push(`isl:${metadata.previousSignatures.isl}`);
32
- }
33
- return parts.join('|');
34
- }
35
- /**
36
- * Genera el contenido completo para firma
37
- * Según spec: contenido procesado + metadata + identificador del algoritmo
38
- *
39
- * @param content - Contenido serializado (payload semántico)
40
- * @param metadata - Metadata serializada
41
- * @param algorithm - Identificador del algoritmo de firma
42
- * @returns Contenido completo para firma
43
- */
44
- export function generateSignableContent(content, metadata, algorithm) {
45
- return `${metadata}\n---\n${content}\n---\nalgorithm:${algorithm}`;
46
- }
47
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/cpe/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAA0D;IACzF,OAAO,QAAQ;SACZ,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,KAAK,OAAO,CAAC,gBAAgB,EAAE,CAAC;SACjE,IAAI,CAAC,IAAI,CAAC,CAAA;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAQjC;IACC,MAAM,KAAK,GAAG;QACZ,aAAa,QAAQ,CAAC,SAAS,EAAE;QACjC,SAAS,QAAQ,CAAC,KAAK,EAAE;QACzB,WAAW,QAAQ,CAAC,eAAe,EAAE;KACtC,CAAA;IAED,IAAI,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,OAAO,QAAQ,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAA;IACtD,CAAC;IAED,IAAI,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,OAAO,QAAQ,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAA;IACtD,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACxB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAAe,EACf,QAAgB,EAChB,SAAiB;IAEjB,OAAO,GAAG,QAAQ,UAAU,OAAO,oBAAoB,SAAS,EAAE,CAAA;AACpE,CAAC"}
@@ -1,32 +0,0 @@
1
- /**
2
- * CPEMetadata - Metadata de seguridad del envelope
3
- * Value Object puro e inmutable
4
- */
5
- import type { CPEMetadata, ProtocolVersion, Timestamp } from '../types.js';
6
- import type { Nonce as NonceVO } from './Nonce.js';
7
- /**
8
- * Versión actual del protocolo
9
- */
10
- export declare const CURRENT_PROTOCOL_VERSION: ProtocolVersion;
11
- /**
12
- * Crea metadata de seguridad para el envelope
13
- * Según especificación: timestamp, nonce, protocolVersion, previousSignatures opcionales
14
- *
15
- * @param timestamp - Timestamp Unix en milisegundos
16
- * @param nonce - Nonce único
17
- * @param protocolVersion - Versión del protocolo (default: CURRENT_PROTOCOL_VERSION)
18
- * @param previousSignatures - Firmas opcionales de capas anteriores (csl, isl)
19
- * @returns CPEMetadata inmutable
20
- */
21
- export declare function createMetadata(timestamp: Timestamp, nonce: NonceVO, protocolVersion?: ProtocolVersion, previousSignatures?: {
22
- csl?: string;
23
- isl?: string;
24
- }): CPEMetadata;
25
- /**
26
- * Valida que la metadata sea válida
27
- *
28
- * @param metadata - Metadata a validar
29
- * @returns true si es válida
30
- */
31
- export declare function isValidMetadata(metadata: CPEMetadata): boolean;
32
- //# sourceMappingURL=Metadata.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Metadata.d.ts","sourceRoot":"","sources":["../../../src/cpe/value-objects/Metadata.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC1E,OAAO,KAAK,EAAE,KAAK,IAAI,OAAO,EAAE,MAAM,YAAY,CAAA;AAElD;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,eAAyB,CAAA;AAEhE;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,OAAO,EACd,eAAe,GAAE,eAA0C,EAC3D,kBAAkB,CAAC,EAAE;IACnB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,GACA,WAAW,CA4Bb;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAS9D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Metadata.js","sourceRoot":"","sources":["../../../src/cpe/value-objects/Metadata.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAoB,OAAO,CAAA;AAEhE;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAC5B,SAAoB,EACpB,KAAc,EACd,kBAAmC,wBAAwB,EAC3D,kBAGC;IAED,oBAAoB;IACpB,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;IACxD,CAAC;IAED,8EAA8E;IAC9E,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAA;IACrD,IAAI,SAAS,GAAG,kBAAkB,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;IACtD,CAAC;IAED,gCAAgC;IAChC,IAAI,CAAC,eAAe,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;IAChE,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,SAAS;QACT,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,eAAe;QACf,kBAAkB,EAAE,kBAAkB;YACpC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;gBACZ,GAAG,EAAE,kBAAkB,CAAC,GAAG,IAAI,SAAS;gBACxC,GAAG,EAAE,kBAAkB,CAAC,GAAG,IAAI,SAAS;aACzC,CAAC;YACJ,CAAC,CAAC,SAAS;KACd,CAAC,CAAA;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,QAAqB;IACnD,IAAI,CAAC;QACH,IAAI,QAAQ,CAAC,SAAS,IAAI,CAAC;YAAE,OAAO,KAAK,CAAA;QACzC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE;YAAE,OAAO,KAAK,CAAA;QAC/D,IAAI,CAAC,QAAQ,CAAC,eAAe;YAAE,OAAO,KAAK,CAAA;QAC3C,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
@@ -1,33 +0,0 @@
1
- /**
2
- * Nonce - Valor único para prevenir ataques de replay
3
- * Value Object puro e inmutable
4
- */
5
- /**
6
- * Nonce - Valor único generado aleatoriamente
7
- */
8
- export type Nonce = {
9
- readonly value: string;
10
- };
11
- /**
12
- * Genera un nonce único
13
- *
14
- * @param length - Longitud del nonce en bytes (default: 16)
15
- * @returns Nonce único
16
- */
17
- export declare function createNonce(length?: number): Nonce;
18
- /**
19
- * Valida que un string sea un nonce válido
20
- *
21
- * @param value - String a validar
22
- * @returns true si es un nonce válido
23
- */
24
- export declare function isValidNonce(value: string): boolean;
25
- /**
26
- * Compara dos nonces
27
- *
28
- * @param nonce1 - Primer nonce
29
- * @param nonce2 - Segundo nonce
30
- * @returns true si son iguales
31
- */
32
- export declare function equalsNonce(nonce1: Nonce, nonce2: Nonce): boolean;
33
- //# sourceMappingURL=Nonce.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Nonce.d.ts","sourceRoot":"","sources":["../../../src/cpe/value-objects/Nonce.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,GAAE,MAAW,GAAG,KAAK,CActD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAG,OAAO,CAEjE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Nonce.js","sourceRoot":"","sources":["../../../src/cpe/value-objects/Nonce.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AASzC;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,SAAiB,EAAE;IAC7C,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;IAC1D,CAAC;IACD,IAAI,MAAM,GAAG,EAAE,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;IAC1D,CAAC;IAED,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;IACjC,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEnC,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,KAAK;KACN,CAAC,CAAA;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC1C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,MAAa,EAAE,MAAa;IACtD,OAAO,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAA;AACtC,CAAC"}
@@ -1,39 +0,0 @@
1
- /**
2
- * Signature - Firma criptográfica HMAC-SHA256
3
- * Value Object puro e inmutable
4
- */
5
- import type { SignatureAlgorithm } from '../types.js';
6
- /**
7
- * Signature - Firma criptográfica
8
- */
9
- export type SignatureVO = {
10
- readonly value: string;
11
- readonly algorithm: SignatureAlgorithm;
12
- };
13
- /**
14
- * Genera una firma HMAC-SHA256 del contenido
15
- *
16
- * @param content - Contenido a firmar
17
- * @param secretKey - Clave secreta para HMAC
18
- * @returns Signature inmutable
19
- *
20
- * @throws {Error} Si la clave secreta está vacía
21
- */
22
- export declare function createSignature(content: string, secretKey: string): SignatureVO;
23
- /**
24
- * Verifica una firma HMAC-SHA256
25
- *
26
- * @param content - Contenido original
27
- * @param signature - Firma a verificar
28
- * @param secretKey - Clave secreta para HMAC
29
- * @returns true si la firma es válida
30
- */
31
- export declare function verifySignature(content: string, signature: string, secretKey: string): boolean;
32
- /**
33
- * Valida el formato de una firma
34
- *
35
- * @param signature - Firma a validar
36
- * @returns true si el formato es válido
37
- */
38
- export declare function isValidSignatureFormat(signature: string): boolean;
39
- //# sourceMappingURL=Signature.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Signature.d.ts","sourceRoot":"","sources":["../../../src/cpe/value-objects/Signature.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAErD;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAA;CACvC,CAAA;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,WAAW,CAiBb;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAWT;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAGjE"}
@@ -1,60 +0,0 @@
1
- /**
2
- * Signature - Firma criptográfica HMAC-SHA256
3
- * Value Object puro e inmutable
4
- */
5
- import { createHmac } from 'node:crypto';
6
- /**
7
- * Genera una firma HMAC-SHA256 del contenido
8
- *
9
- * @param content - Contenido a firmar
10
- * @param secretKey - Clave secreta para HMAC
11
- * @returns Signature inmutable
12
- *
13
- * @throws {Error} Si la clave secreta está vacía
14
- */
15
- export function createSignature(content, secretKey) {
16
- if (!secretKey || secretKey.length === 0) {
17
- throw new Error('Secret key is required for signature generation');
18
- }
19
- if (typeof content !== 'string') {
20
- throw new TypeError('Content must be a string');
21
- }
22
- const hmac = createHmac('sha256', secretKey);
23
- hmac.update(content);
24
- const signature = hmac.digest('hex');
25
- return Object.freeze({
26
- value: signature,
27
- algorithm: 'HMAC-SHA256',
28
- });
29
- }
30
- /**
31
- * Verifica una firma HMAC-SHA256
32
- *
33
- * @param content - Contenido original
34
- * @param signature - Firma a verificar
35
- * @param secretKey - Clave secreta para HMAC
36
- * @returns true si la firma es válida
37
- */
38
- export function verifySignature(content, signature, secretKey) {
39
- if (!secretKey || secretKey.length === 0) {
40
- return false;
41
- }
42
- try {
43
- const expectedSignature = createSignature(content, secretKey);
44
- return expectedSignature.value === signature;
45
- }
46
- catch {
47
- return false;
48
- }
49
- }
50
- /**
51
- * Valida el formato de una firma
52
- *
53
- * @param signature - Firma a validar
54
- * @returns true si el formato es válido
55
- */
56
- export function isValidSignatureFormat(signature) {
57
- // HMAC-SHA256 produce un hash hexadecimal de 64 caracteres
58
- return /^[a-f0-9]{64}$/i.test(signature);
59
- }
60
- //# sourceMappingURL=Signature.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Signature.js","sourceRoot":"","sources":["../../../src/cpe/value-objects/Signature.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAWxC;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAe,EACf,SAAiB;IAEjB,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;IACpE,CAAC;IAED,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,SAAS,CAAC,0BAA0B,CAAC,CAAA;IACjD,CAAC;IAED,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;IAC5C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACpB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAEpC,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,KAAK,EAAE,SAAS;QAChB,SAAS,EAAE,aAAa;KACzB,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAe,EACf,SAAiB,EACjB,SAAiB;IAEjB,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,iBAAiB,GAAG,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;QAC7D,OAAO,iBAAiB,CAAC,KAAK,KAAK,SAAS,CAAA;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,SAAiB;IACtD,2DAA2D;IAC3D,OAAO,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAC1C,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cpe/value-objects/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACnE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/D,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cpe/value-objects/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACnE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE/D,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA"}