@vinkius-core/mcp-fusion 2.13.0 → 2.14.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/core/initFusion.d.ts +16 -0
- package/dist/core/initFusion.d.ts.map +1 -1
- package/dist/core/initFusion.js +3 -0
- package/dist/core/initFusion.js.map +1 -1
- package/dist/core/response.d.ts +2 -1
- package/dist/core/response.d.ts.map +1 -1
- package/dist/core/response.js +3 -2
- package/dist/core/response.js.map +1 -1
- package/dist/core/serialization/JsonSerializer.d.ts +71 -0
- package/dist/core/serialization/JsonSerializer.d.ts.map +1 -0
- package/dist/core/serialization/JsonSerializer.js +192 -0
- package/dist/core/serialization/JsonSerializer.js.map +1 -0
- package/dist/core/serialization/index.d.ts +7 -0
- package/dist/core/serialization/index.d.ts.map +1 -0
- package/dist/core/serialization/index.js +7 -0
- package/dist/core/serialization/index.js.map +1 -0
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/presenter/Presenter.d.ts +67 -0
- package/dist/presenter/Presenter.d.ts.map +1 -1
- package/dist/presenter/Presenter.js +94 -1
- package/dist/presenter/Presenter.js.map +1 -1
- package/dist/presenter/RedactEngine.d.ts +110 -0
- package/dist/presenter/RedactEngine.d.ts.map +1 -0
- package/dist/presenter/RedactEngine.js +128 -0
- package/dist/presenter/RedactEngine.js.map +1 -0
- package/dist/presenter/ResponseBuilder.d.ts +2 -1
- package/dist/presenter/ResponseBuilder.d.ts.map +1 -1
- package/dist/presenter/ResponseBuilder.js +3 -2
- package/dist/presenter/ResponseBuilder.js.map +1 -1
- package/dist/presenter/definePresenter.d.ts +21 -0
- package/dist/presenter/definePresenter.d.ts.map +1 -1
- package/dist/presenter/definePresenter.js +3 -0
- package/dist/presenter/definePresenter.js.map +1 -1
- package/dist/presenter/index.d.ts +2 -0
- package/dist/presenter/index.d.ts.map +1 -1
- package/dist/presenter/index.js +2 -0
- package/dist/presenter/index.js.map +1 -1
- package/dist/sandbox/SandboxEngine.d.ts +38 -24
- package/dist/sandbox/SandboxEngine.d.ts.map +1 -1
- package/dist/sandbox/SandboxEngine.js +83 -30
- package/dist/sandbox/SandboxEngine.js.map +1 -1
- package/package.json +19 -5
|
@@ -45,6 +45,7 @@ import { ErrorBuilder } from './builder/ErrorBuilder.js';
|
|
|
45
45
|
import { StateSyncBuilder } from '../state-sync/StateSyncBuilder.js';
|
|
46
46
|
import { type ErrorCode } from './response.js';
|
|
47
47
|
import { SandboxEngine, type SandboxConfig } from '../sandbox/SandboxEngine.js';
|
|
48
|
+
import { type JsonSerializer } from './serialization/JsonSerializer.js';
|
|
48
49
|
/**
|
|
49
50
|
* The initialized Fusion instance.
|
|
50
51
|
*
|
|
@@ -226,6 +227,21 @@ export interface FusionInstance<TContext> {
|
|
|
226
227
|
* ```
|
|
227
228
|
*/
|
|
228
229
|
sandbox(config?: SandboxConfig): SandboxEngine;
|
|
230
|
+
/**
|
|
231
|
+
* AOT JSON serializer.
|
|
232
|
+
*
|
|
233
|
+
* Compile Zod schemas into hyper-fast stringify functions at boot time.
|
|
234
|
+
* Used internally by Presenters; exposed here for advanced use cases.
|
|
235
|
+
*
|
|
236
|
+
* @example
|
|
237
|
+
* ```typescript
|
|
238
|
+
* const stringify = f.serializer.compile(myZodSchema);
|
|
239
|
+
* if (stringify) {
|
|
240
|
+
* return success(data, stringify); // 2-5x faster
|
|
241
|
+
* }
|
|
242
|
+
* ```
|
|
243
|
+
*/
|
|
244
|
+
readonly serializer: JsonSerializer;
|
|
229
245
|
}
|
|
230
246
|
/**
|
|
231
247
|
* Initialize a Fusion instance with a fixed context type.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initFusion.d.ts","sourceRoot":"","sources":["../../src/core/initFusion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EAAE,KAAK,OAAO,EAAoC,MAAM,KAAK,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAGrE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACxF,OAAO,EAAoB,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAEtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EACH,iBAAiB,EAEpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"initFusion.d.ts","sourceRoot":"","sources":["../../src/core/initFusion.ts"],"names":[],"mappings":"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"}
|
package/dist/core/initFusion.js
CHANGED
|
@@ -48,6 +48,7 @@ import { ErrorBuilder } from './builder/ErrorBuilder.js';
|
|
|
48
48
|
import { StateSyncBuilder } from '../state-sync/StateSyncBuilder.js';
|
|
49
49
|
import {} from './response.js';
|
|
50
50
|
import { SandboxEngine } from '../sandbox/SandboxEngine.js';
|
|
51
|
+
import { defaultSerializer } from './serialization/JsonSerializer.js';
|
|
51
52
|
// ── Factory ──────────────────────────────────────────────
|
|
52
53
|
/**
|
|
53
54
|
* Initialize a Fusion instance with a fixed context type.
|
|
@@ -124,6 +125,8 @@ export function initFusion() {
|
|
|
124
125
|
sandbox(config) {
|
|
125
126
|
return new SandboxEngine(config);
|
|
126
127
|
},
|
|
128
|
+
// ── Serialization ────────────────────────────────
|
|
129
|
+
serializer: defaultSerializer,
|
|
127
130
|
};
|
|
128
131
|
}
|
|
129
132
|
//# sourceMappingURL=initFusion.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initFusion.js","sourceRoot":"","sources":["../../src/core/initFusion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EAAkD,MAAM,KAAK,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAqB,MAAM,eAAe,CAAC;AAClD,OAAO,EAAqB,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAkB,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAwB,MAAM,iCAAiC,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAA6B,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,UAAU,EAAmB,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAyC,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EACH,iBAAiB,EACjB,cAAc,EAAE,iBAAiB,EAAE,eAAe,GACrD,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAkB,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAsB,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"initFusion.js","sourceRoot":"","sources":["../../src/core/initFusion.ts"],"names":[],"mappings":"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"}
|
package/dist/core/response.d.ts
CHANGED
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
* @module
|
|
28
28
|
*/
|
|
29
29
|
import { type EncodeOptions } from '@toon-format/toon';
|
|
30
|
+
import { type StringifyFn } from './serialization/JsonSerializer.js';
|
|
30
31
|
/**
|
|
31
32
|
* Escape XML structural characters for element content.
|
|
32
33
|
*
|
|
@@ -98,7 +99,7 @@ export interface ToolResponse {
|
|
|
98
99
|
* @see {@link error} for error responses
|
|
99
100
|
* @see {@link toonSuccess} for token-optimized array responses
|
|
100
101
|
*/
|
|
101
|
-
export declare function success(data: string | object): ToolResponse;
|
|
102
|
+
export declare function success(data: string | object, compiledStringify?: StringifyFn): ToolResponse;
|
|
102
103
|
/**
|
|
103
104
|
* Create an error response.
|
|
104
105
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/core/response.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/core/response.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAMrE;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI7C;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOjD;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClF,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC9B;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,iBAAiB,CAAC,EAAE,WAAW,GAAG,YAAY,CAK5F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,YAAY,CAMrE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CASpD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,YAAY,CAIhF;AAMD;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,SAAS,GACf,uBAAuB,GACvB,gBAAgB,GAChB,kBAAkB,GAClB,wBAAwB,GACxB,gBAAgB,GAChB,cAAc,GACd,cAAc,GACd,WAAW,GACX,WAAW,GACX,UAAU,GACV,SAAS,GACT,aAAa,GACb,YAAY,GACZ,eAAe,GACf,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAEpB;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;AAE7D;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC7B,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,GAAG,YAAY,CAqClF"}
|
package/dist/core/response.js
CHANGED
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
* @module
|
|
28
28
|
*/
|
|
29
29
|
import { encode } from '@toon-format/toon';
|
|
30
|
+
import {} from './serialization/JsonSerializer.js';
|
|
30
31
|
// ============================================================================
|
|
31
32
|
// XML Safety
|
|
32
33
|
// ============================================================================
|
|
@@ -90,10 +91,10 @@ export function escapeXmlAttr(str) {
|
|
|
90
91
|
* @see {@link error} for error responses
|
|
91
92
|
* @see {@link toonSuccess} for token-optimized array responses
|
|
92
93
|
*/
|
|
93
|
-
export function success(data) {
|
|
94
|
+
export function success(data, compiledStringify) {
|
|
94
95
|
const text = typeof data === 'string'
|
|
95
96
|
? (data || 'OK')
|
|
96
|
-
: JSON.stringify(data, null, 2);
|
|
97
|
+
: (compiledStringify ? compiledStringify(data) : JSON.stringify(data, null, 2));
|
|
97
98
|
return { content: [{ type: "text", text }] };
|
|
98
99
|
}
|
|
99
100
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/core/response.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAE,MAAM,EAAsB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/core/response.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAE,MAAM,EAAsB,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAoB,MAAM,mCAAmC,CAAC;AAErE,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAE/E;;;;;;;;;GASG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW;IACjC,OAAO,GAAG;SACL,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW;IACrC,OAAO,GAAG;SACL,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACjC,CAAC;AA6BD,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,OAAO,CAAC,IAAqB,EAAE,iBAA+B;IAC1E,MAAM,IAAI,GAAG,OAAO,IAAI,KAAK,QAAQ;QACjC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACpF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AACjD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,KAAK,CAAC,OAAe,EAAE,IAAgB;IACnD,MAAM,QAAQ,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5E,OAAO;QACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,QAAQ,eAAe,SAAS,CAAC,OAAO,CAAC,2BAA2B,EAAE,CAAC;QACrH,OAAO,EAAE,IAAI;KAChB,CAAC;AACN,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAa;IAClC,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC3B,OAAO;QACH,OAAO,EAAE,CAAC;gBACN,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,wEAAwE,CAAC,mDAAmD,CAAC,kDAAkD;aACxL,CAAC;QACF,OAAO,EAAE,IAAI;KAChB,CAAC;AACN,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,WAAW,CAAC,IAAa,EAAE,OAAuB;IAC9D,MAAM,QAAQ,GAAkB,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;IACnD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,EAAE,GAAG,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACvD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AACjD,CAAC;AAoFD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,UAAU,SAAS,CAAC,IAAe,EAAE,OAAyB;IAChE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC;IAC7C,MAAM,KAAK,GAAa;QACpB,qBAAqB,aAAa,CAAC,IAAI,CAAC,eAAe,aAAa,CAAC,QAAQ,CAAC,IAAI;QAClF,YAAY,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY;KACrD,CAAC;IAEF,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,aAAa,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAClC,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,gBAAiB,EAAE,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC,aAAa,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC1D,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACzD,KAAK,CAAC,IAAI,CAAC,kBAAkB,aAAa,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACrF,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,UAAU,wBAAwB,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAE5B,8DAA8D;IAC9D,gEAAgE;IAChE,MAAM,OAAO,GAAG,QAAQ,KAAK,SAAS,CAAC;IACvC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;AAC5E,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A pre-compiled stringify function.
|
|
3
|
+
*
|
|
4
|
+
* Generated at boot or on first use from a Zod schema.
|
|
5
|
+
* Accepts any object and returns a JSON string (minified).
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* const stringify = serializer.compile(myZodSchema);
|
|
10
|
+
* const json = stringify({ id: 1, name: 'Alice' });
|
|
11
|
+
* // '{"id":1,"name":"Alice"}'
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export type StringifyFn = (doc: unknown) => string;
|
|
15
|
+
/**
|
|
16
|
+
* AOT JSON serialization engine.
|
|
17
|
+
*
|
|
18
|
+
* Compiles Zod schemas into fast stringify functions at boot time
|
|
19
|
+
* or lazily on first use. Maintains a per-schema cache to avoid
|
|
20
|
+
* recompilation.
|
|
21
|
+
*/
|
|
22
|
+
export interface JsonSerializer {
|
|
23
|
+
/**
|
|
24
|
+
* Compile a Zod schema into a fast stringify function.
|
|
25
|
+
*
|
|
26
|
+
* Returns `undefined` if `fast-json-stringify` is not available
|
|
27
|
+
* or if compilation fails (defensive fallback).
|
|
28
|
+
*
|
|
29
|
+
* @param schema - Any Zod schema (ZodObject, ZodArray, etc.)
|
|
30
|
+
* @returns A compiled stringify function, or `undefined`
|
|
31
|
+
*/
|
|
32
|
+
compile(schema: unknown): StringifyFn | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* Stringify data using a compiled function or native fallback.
|
|
35
|
+
*
|
|
36
|
+
* @param data - The data to serialize
|
|
37
|
+
* @param compiled - Optional pre-compiled stringify function
|
|
38
|
+
* @returns JSON string
|
|
39
|
+
*/
|
|
40
|
+
stringify(data: unknown, compiled?: StringifyFn): string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Create an AOT JSON serializer.
|
|
44
|
+
*
|
|
45
|
+
* The serializer lazy-loads `fast-json-stringify` and provides
|
|
46
|
+
* compile/stringify methods with automatic fallback.
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* const serializer = createSerializer();
|
|
51
|
+
* await serializer.init(); // optional: pre-load the fjs module
|
|
52
|
+
*
|
|
53
|
+
* const stringify = serializer.compile(myZodSchema);
|
|
54
|
+
* if (stringify) {
|
|
55
|
+
* const json = stringify(data); // 2-5x faster
|
|
56
|
+
* }
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
export declare function createSerializer(): JsonSerializer & {
|
|
60
|
+
init(): Promise<void>;
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Global singleton serializer.
|
|
64
|
+
*
|
|
65
|
+
* Shared across the engine so all Presenters and response helpers
|
|
66
|
+
* use the same cache and fjs module reference.
|
|
67
|
+
*/
|
|
68
|
+
export declare const defaultSerializer: JsonSerializer & {
|
|
69
|
+
init(): Promise<void>;
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=JsonSerializer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JsonSerializer.d.ts","sourceRoot":"","sources":["../../../src/core/serialization/JsonSerializer.ts"],"names":[],"mappings":"AAmCA;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC3B;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,EAAE,OAAO,GAAG,WAAW,GAAG,SAAS,CAAC;IAElD;;;;;;OAMG;IACH,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;CAC5D;AA4ID;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,IAAI,cAAc,GAAG;IAAE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAsB7E;AAID;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;YAhCiC,OAAO,CAAC,IAAI,CAAC;CAgCzB,CAAC"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JsonSerializer — AOT JSON Serialization Engine
|
|
3
|
+
*
|
|
4
|
+
* Compiles Zod schemas into hyper-fast stringify functions using
|
|
5
|
+
* `fast-json-stringify` (the Fastify serialization engine).
|
|
6
|
+
*
|
|
7
|
+
* Architecture:
|
|
8
|
+
* ┌──────────────────────────────────────────────────┐
|
|
9
|
+
* │ Boot / First Call (AOT / Lazy) │
|
|
10
|
+
* │ │
|
|
11
|
+
* │ ZodType ──► zod-to-json-schema ──► JSON Schema │
|
|
12
|
+
* │ │ │
|
|
13
|
+
* │ ▼ │
|
|
14
|
+
* │ fast-json-stringify │
|
|
15
|
+
* │ │ │
|
|
16
|
+
* │ ▼ │
|
|
17
|
+
* │ Compiled StringifyFn (C-like) │
|
|
18
|
+
* │ Cached via WeakMap<ZodType> │
|
|
19
|
+
* └──────────────────────────────────────────────────┘
|
|
20
|
+
*
|
|
21
|
+
* Properties:
|
|
22
|
+
* - 2-5x faster than `JSON.stringify` for known schemas
|
|
23
|
+
* - Lazy-by-default: compiles on first use, cached via WeakMap
|
|
24
|
+
* - Zero-risk fallback: if `fast-json-stringify` is missing or
|
|
25
|
+
* compilation fails, falls back to native `JSON.stringify`
|
|
26
|
+
* - Produces compact/minified JSON (no indentation) for max throughput
|
|
27
|
+
* - Safe optional/nullable handling via schema transformation
|
|
28
|
+
*
|
|
29
|
+
* @module
|
|
30
|
+
* @internal
|
|
31
|
+
*/
|
|
32
|
+
import { zodToJsonSchema } from 'zod-to-json-schema';
|
|
33
|
+
let _fjsBuild = null;
|
|
34
|
+
async function loadFastJsonStringify() {
|
|
35
|
+
if (_fjsBuild === false)
|
|
36
|
+
return null; // already tried, not available
|
|
37
|
+
if (_fjsBuild !== null)
|
|
38
|
+
return _fjsBuild;
|
|
39
|
+
try {
|
|
40
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
41
|
+
const mod = await import('fast-json-stringify');
|
|
42
|
+
_fjsBuild = (typeof mod === 'function' ? mod : mod.default);
|
|
43
|
+
return _fjsBuild;
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
_fjsBuild = false; // mark as unavailable
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
// Synchronous version — uses the cached function if already loaded.
|
|
51
|
+
function getFjsBuild() {
|
|
52
|
+
if (_fjsBuild === false || _fjsBuild === null)
|
|
53
|
+
return null;
|
|
54
|
+
return _fjsBuild;
|
|
55
|
+
}
|
|
56
|
+
// ── Schema Cache ─────────────────────────────────────────
|
|
57
|
+
// WeakMap ensures schemas are compiled exactly once and can be GC'd
|
|
58
|
+
// when the schema reference is released.
|
|
59
|
+
const _cache = new WeakMap();
|
|
60
|
+
// ── JSON Schema Transformation ───────────────────────────
|
|
61
|
+
/**
|
|
62
|
+
* Transform a JSON Schema for safe use with fast-json-stringify.
|
|
63
|
+
*
|
|
64
|
+
* - Strips `$schema` (not supported by fjs)
|
|
65
|
+
* - Adds `additionalProperties: true` to objects so unknown fields
|
|
66
|
+
* are serialized instead of silently dropped
|
|
67
|
+
* - Wraps types with nullable variants where appropriate
|
|
68
|
+
*
|
|
69
|
+
* @internal
|
|
70
|
+
*/
|
|
71
|
+
function transformForFjs(jsonSchema) {
|
|
72
|
+
const schema = { ...jsonSchema };
|
|
73
|
+
// Remove $schema — fast-json-stringify doesn't support it
|
|
74
|
+
delete schema['$schema'];
|
|
75
|
+
// For object-type schemas, allow additional properties
|
|
76
|
+
// so dynamic/runtime fields are not silently dropped
|
|
77
|
+
if (schema['type'] === 'object') {
|
|
78
|
+
if (schema['additionalProperties'] === undefined) {
|
|
79
|
+
schema['additionalProperties'] = true;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
// Recursively transform nested properties
|
|
83
|
+
if (schema['properties'] && typeof schema['properties'] === 'object') {
|
|
84
|
+
const props = { ...schema['properties'] };
|
|
85
|
+
for (const [key, value] of Object.entries(props)) {
|
|
86
|
+
if (value && typeof value === 'object') {
|
|
87
|
+
props[key] = transformForFjs(value);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
schema['properties'] = props;
|
|
91
|
+
}
|
|
92
|
+
// Transform array items
|
|
93
|
+
if (schema['items'] && typeof schema['items'] === 'object') {
|
|
94
|
+
schema['items'] = transformForFjs(schema['items']);
|
|
95
|
+
}
|
|
96
|
+
// Handle anyOf / oneOf for nullable unions
|
|
97
|
+
for (const combiner of ['anyOf', 'oneOf', 'allOf']) {
|
|
98
|
+
if (Array.isArray(schema[combiner])) {
|
|
99
|
+
schema[combiner] = schema[combiner]
|
|
100
|
+
.map(s => (s && typeof s === 'object' ? transformForFjs(s) : s));
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return schema;
|
|
104
|
+
}
|
|
105
|
+
// ── Compile Logic ────────────────────────────────────────
|
|
106
|
+
/**
|
|
107
|
+
* Core compilation: Zod schema → JSON Schema → fast-json-stringify function.
|
|
108
|
+
*
|
|
109
|
+
* @internal
|
|
110
|
+
*/
|
|
111
|
+
function compileSchema(schema) {
|
|
112
|
+
const build = getFjsBuild();
|
|
113
|
+
if (!build)
|
|
114
|
+
return undefined;
|
|
115
|
+
// Check cache first (schema as WeakMap key)
|
|
116
|
+
if (typeof schema === 'object' && schema !== null && _cache.has(schema)) {
|
|
117
|
+
return _cache.get(schema);
|
|
118
|
+
}
|
|
119
|
+
try {
|
|
120
|
+
// Step 1: Zod → JSON Schema
|
|
121
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
122
|
+
const rawJsonSchema = zodToJsonSchema(schema, {
|
|
123
|
+
target: 'jsonSchema7',
|
|
124
|
+
$refStrategy: 'none',
|
|
125
|
+
});
|
|
126
|
+
// Step 2: Transform for fjs compatibility
|
|
127
|
+
const fjsSchema = transformForFjs(rawJsonSchema);
|
|
128
|
+
// Step 3: Compile the stringify function
|
|
129
|
+
const stringify = build(fjsSchema, {
|
|
130
|
+
largeArrayMechanism: 'json-stringify',
|
|
131
|
+
});
|
|
132
|
+
// Cache the compiled function
|
|
133
|
+
if (typeof schema === 'object' && schema !== null) {
|
|
134
|
+
_cache.set(schema, stringify);
|
|
135
|
+
}
|
|
136
|
+
return stringify;
|
|
137
|
+
}
|
|
138
|
+
catch {
|
|
139
|
+
// Compilation failed — fall back to native JSON.stringify
|
|
140
|
+
// This is expected for very complex schemas that fjs can't handle
|
|
141
|
+
return undefined;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
// ── Public Factory ───────────────────────────────────────
|
|
145
|
+
/**
|
|
146
|
+
* Create an AOT JSON serializer.
|
|
147
|
+
*
|
|
148
|
+
* The serializer lazy-loads `fast-json-stringify` and provides
|
|
149
|
+
* compile/stringify methods with automatic fallback.
|
|
150
|
+
*
|
|
151
|
+
* @example
|
|
152
|
+
* ```typescript
|
|
153
|
+
* const serializer = createSerializer();
|
|
154
|
+
* await serializer.init(); // optional: pre-load the fjs module
|
|
155
|
+
*
|
|
156
|
+
* const stringify = serializer.compile(myZodSchema);
|
|
157
|
+
* if (stringify) {
|
|
158
|
+
* const json = stringify(data); // 2-5x faster
|
|
159
|
+
* }
|
|
160
|
+
* ```
|
|
161
|
+
*/
|
|
162
|
+
export function createSerializer() {
|
|
163
|
+
return {
|
|
164
|
+
async init() {
|
|
165
|
+
await loadFastJsonStringify();
|
|
166
|
+
},
|
|
167
|
+
compile(schema) {
|
|
168
|
+
return compileSchema(schema);
|
|
169
|
+
},
|
|
170
|
+
stringify(data, compiled) {
|
|
171
|
+
if (compiled) {
|
|
172
|
+
try {
|
|
173
|
+
return compiled(data);
|
|
174
|
+
}
|
|
175
|
+
catch {
|
|
176
|
+
// Defensive: if compiled function fails at runtime
|
|
177
|
+
// (e.g., data shape mismatch), fall back to native
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
return JSON.stringify(data);
|
|
181
|
+
},
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
// ── Singleton ────────────────────────────────────────────
|
|
185
|
+
/**
|
|
186
|
+
* Global singleton serializer.
|
|
187
|
+
*
|
|
188
|
+
* Shared across the engine so all Presenters and response helpers
|
|
189
|
+
* use the same cache and fjs module reference.
|
|
190
|
+
*/
|
|
191
|
+
export const defaultSerializer = createSerializer();
|
|
192
|
+
//# sourceMappingURL=JsonSerializer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JsonSerializer.js","sourceRoot":"","sources":["../../../src/core/serialization/JsonSerializer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/serialization/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACH,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,gBAAgB,EAChB,iBAAiB,GACpB,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/serialization/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAGH,gBAAgB,EAChB,iBAAiB,GACpB,MAAM,qBAAqB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -56,9 +56,9 @@ export { createDebugObserver, SpanStatusCode } from './observability/index.js';
|
|
|
56
56
|
/** @category Observability */
|
|
57
57
|
export type { DebugEvent, DebugObserverFn, RouteEvent, ValidateEvent, MiddlewareEvent, ExecuteEvent, ErrorEvent, GovernanceEvent, GovernanceOperation, FusionSpan, FusionTracer, FusionAttributeValue, } from './observability/index.js';
|
|
58
58
|
/** @category Presenter */
|
|
59
|
-
export { ResponseBuilder, response, isResponseBuilder, ui, t, suggest, Presenter, createPresenter, isPresenter, PresenterValidationError, definePresenter, extractZodDescriptions, } from './presenter/index.js';
|
|
59
|
+
export { ResponseBuilder, response, isResponseBuilder, ui, t, suggest, Presenter, createPresenter, isPresenter, PresenterValidationError, definePresenter, extractZodDescriptions, compileRedactor, initRedactEngine, } from './presenter/index.js';
|
|
60
60
|
/** @category Presenter */
|
|
61
|
-
export type { UiBlock, ActionSuggestion, PresenterConfig, AgentLimitDef, EmbedDef } from './presenter/index.js';
|
|
61
|
+
export type { UiBlock, ActionSuggestion, PresenterConfig, AgentLimitDef, EmbedDef, RedactConfig, RedactFn } from './presenter/index.js';
|
|
62
62
|
/** @category Prompt */
|
|
63
63
|
export { definePrompt, PromptMessage, assertFlatSchema, coercePromptArgs } from './prompt/index.js';
|
|
64
64
|
/** @category Prompt */
|
|
@@ -131,4 +131,8 @@ export type { GovernanceObserverConfig, GovernanceObserver, } from './introspect
|
|
|
131
131
|
export { SandboxEngine, validateSandboxCode, SANDBOX_SYSTEM_INSTRUCTION } from './sandbox/index.js';
|
|
132
132
|
/** @category Sandbox */
|
|
133
133
|
export type { GuardResult } from './sandbox/index.js';
|
|
134
|
+
/** @category Serialization */
|
|
135
|
+
export { createSerializer, defaultSerializer } from './core/serialization/index.js';
|
|
136
|
+
/** @category Serialization */
|
|
137
|
+
export type { StringifyFn, JsonSerializer } from './core/serialization/index.js';
|
|
134
138
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -58,7 +58,7 @@ export { createFusionClient, createTypedRegistry, FusionClientError } from './cl
|
|
|
58
58
|
export { createDebugObserver, SpanStatusCode } from './observability/index.js';
|
|
59
59
|
// ── Presenter (MVA View Layer) ───────────────────────────
|
|
60
60
|
/** @category Presenter */
|
|
61
|
-
export { ResponseBuilder, response, isResponseBuilder, ui, t, suggest, Presenter, createPresenter, isPresenter, PresenterValidationError, definePresenter, extractZodDescriptions, } from './presenter/index.js';
|
|
61
|
+
export { ResponseBuilder, response, isResponseBuilder, ui, t, suggest, Presenter, createPresenter, isPresenter, PresenterValidationError, definePresenter, extractZodDescriptions, compileRedactor, initRedactEngine, } from './presenter/index.js';
|
|
62
62
|
// ── Prompt Engine ────────────────────────────────────────
|
|
63
63
|
/** @category Prompt */
|
|
64
64
|
export { definePrompt, PromptMessage, assertFlatSchema, coercePromptArgs } from './prompt/index.js';
|
|
@@ -99,4 +99,7 @@ export { createGovernanceObserver, createNoopObserver, } from './introspection/G
|
|
|
99
99
|
// ── Sandbox (Zero-Trust V8 Compute Delegation) ──────────
|
|
100
100
|
/** @category Sandbox */
|
|
101
101
|
export { SandboxEngine, validateSandboxCode, SANDBOX_SYSTEM_INSTRUCTION } from './sandbox/index.js';
|
|
102
|
+
// ── Serialization (AOT JSON Engine) ─────────────────────
|
|
103
|
+
/** @category Serialization */
|
|
104
|
+
export { createSerializer, defaultSerializer } from './core/serialization/index.js';
|
|
102
105
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,4DAA4D;AAC5D,8BAA8B;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,8BAA8B;AAC9B,OAAO,EAAa,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACzD,8BAA8B;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,8BAA8B;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,8BAA8B;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,8BAA8B;AAC9B,OAAO,EAAoB,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,8BAA8B;AAC9B,OAAO,EAAwB,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAC1F,8BAA8B;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,8BAA8B;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,8BAA8B;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,8BAA8B;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,4DAA4D;AAC5D,2BAA2B;AAC3B,OAAO,EACH,aAAa,EACQ,kBAAkB,EACnB,iBAAiB,EACf,mBAAmB,EACjB,qBAAqB,EACd,4BAA4B,EAC9D,MAAM,uBAAuB,CAAC;AAE/B,4DAA4D;AAC5D,qBAAqB;AACrB,OAAO,EACH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAChD,kBAAkB,EAAE,kBAAkB,EAAE,UAAU,EAAE,UAAU,EAC9D,YAAY,EACZ,uBAAuB,EACvB,OAAO,EAAE,IAAI,EACb,QAAQ,EACR,gBAAgB,EAAE,iBAAiB,EACnC,UAAU,EACV,WAAW,EACX,mBAAmB,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa;AACnE,aAAa;AACb,iBAAiB,EAAE,YAAY,GAClC,MAAM,iBAAiB,CAAC;AAqBzB,4DAA4D;AAC5D,uBAAuB;AACvB,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAI/F,4DAA4D;AAC5D,8BAA8B;AAC9B,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAS/E,4DAA4D;AAC5D,0BAA0B;AAC1B,OAAO,EACH,eAAe,EAAE,QAAQ,EAAE,iBAAiB,EAC5C,EAAE,EAAE,CAAC,EAAE,OAAO,EACd,SAAS,EAAE,eAAe,EAAE,WAAW,EACvC,wBAAwB,EACxB,eAAe,EACf,sBAAsB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -106,6 +106,8 @@ export declare class Presenter<T> {
|
|
|
106
106
|
private _agentLimit?;
|
|
107
107
|
private _embeds;
|
|
108
108
|
private _sealed;
|
|
109
|
+
private _compiledStringify;
|
|
110
|
+
private _compiledRedactor;
|
|
109
111
|
/** @internal Use {@link createPresenter} factory instead */
|
|
110
112
|
constructor(name: string);
|
|
111
113
|
/**
|
|
@@ -358,6 +360,65 @@ export declare class Presenter<T> {
|
|
|
358
360
|
* ```
|
|
359
361
|
*/
|
|
360
362
|
embed(key: string, childPresenter: Presenter<unknown>): this;
|
|
363
|
+
/**
|
|
364
|
+
* Declare PII fields to redact before data leaves the framework.
|
|
365
|
+
*
|
|
366
|
+
* Uses `fast-redact` (Pino's V8-optimized serialization engine) to
|
|
367
|
+
* compile object paths into hyper-fast masking functions at config
|
|
368
|
+
* time — zero overhead on the hot path.
|
|
369
|
+
*
|
|
370
|
+
* The redaction is applied **structurally** on the wire-facing data
|
|
371
|
+
* (after `_select` filter, before `ResponseBuilder`). UI blocks and
|
|
372
|
+
* system rules still see the **full unmasked data** (Late Guillotine
|
|
373
|
+
* pattern preserved).
|
|
374
|
+
*
|
|
375
|
+
* Requires `fast-redact` as an optional peer dependency.
|
|
376
|
+
* If not installed, passes data through unmodified (defensive fallback).
|
|
377
|
+
*
|
|
378
|
+
* @param paths - Object paths to redact. Supports dot notation,
|
|
379
|
+
* bracket notation, wildcards (`'*'`), and array indices.
|
|
380
|
+
* @param censor - Replacement value. Default: `'[REDACTED]'`.
|
|
381
|
+
* Can be a function `(originalValue) => maskedValue`.
|
|
382
|
+
* @returns `this` for chaining
|
|
383
|
+
*
|
|
384
|
+
* @example
|
|
385
|
+
* ```typescript
|
|
386
|
+
* // Basic PII masking
|
|
387
|
+
* createPresenter('Patient')
|
|
388
|
+
* .schema({ name: t.string, ssn: t.string, diagnosis: t.string })
|
|
389
|
+
* .redactPII(['ssn', 'diagnosis'])
|
|
390
|
+
*
|
|
391
|
+
* // Wildcard — redact all nested SSN fields
|
|
392
|
+
* createPresenter('Users')
|
|
393
|
+
* .redactPII(['*.ssn', '*.password', 'credit_card.number'])
|
|
394
|
+
*
|
|
395
|
+
* // Array wildcard — redact diagnosis in all patients
|
|
396
|
+
* createPresenter('Hospital')
|
|
397
|
+
* .redactPII(['patients[*].diagnosis', 'patients[*].ssn'])
|
|
398
|
+
*
|
|
399
|
+
* // Custom censor — last 4 digits visible
|
|
400
|
+
* createPresenter('Payment')
|
|
401
|
+
* .redactPII(['credit_card.number'], (v) => '****-****-****-' + String(v).slice(-4))
|
|
402
|
+
* ```
|
|
403
|
+
*
|
|
404
|
+
* @see {@link https://github.com/davidmarkclements/fast-redact | fast-redact}
|
|
405
|
+
*/
|
|
406
|
+
redactPII(paths: string[], censor?: string | ((value: unknown) => string)): this;
|
|
407
|
+
/**
|
|
408
|
+
* Alias for `.redactPII()` — fluent shorthand.
|
|
409
|
+
*
|
|
410
|
+
* @param paths - Object paths to redact
|
|
411
|
+
* @param censor - Replacement value or function
|
|
412
|
+
* @returns `this` for chaining
|
|
413
|
+
*
|
|
414
|
+
* @example
|
|
415
|
+
* ```typescript
|
|
416
|
+
* createPresenter('User')
|
|
417
|
+
* .schema({ name: t.string, ssn: t.string })
|
|
418
|
+
* .redact(['ssn'])
|
|
419
|
+
* ```
|
|
420
|
+
*/
|
|
421
|
+
redact(paths: string[], censor?: string | ((value: unknown) => string)): this;
|
|
361
422
|
/**
|
|
362
423
|
* Get the Zod schema's top-level keys.
|
|
363
424
|
*
|
|
@@ -422,6 +483,12 @@ export declare class Presenter<T> {
|
|
|
422
483
|
* ```
|
|
423
484
|
*/
|
|
424
485
|
make(data: T | T[], ctx?: unknown, selectFields?: string[]): ResponseBuilder;
|
|
486
|
+
/**
|
|
487
|
+
* Apply PII redaction to wire-facing data.
|
|
488
|
+
* Creates a deep clone to preserve original data for UI/rules.
|
|
489
|
+
* @internal
|
|
490
|
+
*/
|
|
491
|
+
private _applyRedaction;
|
|
425
492
|
/**
|
|
426
493
|
* Validate data through the Zod schema (if configured).
|
|
427
494
|
* For arrays, each item is validated independently.
|